requests 庫 & robots 協議
阿新 • • 發佈:2018-12-12
import requests # ===通用程式碼框架 def get_html_text(url): try: r = requests.get(url, timeout=30) r.raise_for_status() # 如果狀態不是200,引發HTTP——error異常 r.encoding = r.apparent_encoding return r.text except: return "產生異常" ''' response物件的屬性 屬性 說明 r.status_code HTTP請求的返回狀態,200表示連線成功,404表示失敗 r.text HTTP響應內容的字串形式,即,url對應的頁面內容 r.encoding 從HTTP header中猜測的響應內容編碼方式 r.apparent_encoding 從內容中分析出的響應內容編碼方式(備選編碼方式) r.content HTTP響應內容的二進位制形式 ''' ''' requests庫的七個常用方法 方法 說明 requests.request() 構造一個請求,支撐以下各方法的基礎方法 requests.get()獲取HTML網頁的主要方法,對應於HTTP的GET requests.head() 獲取HTML網頁頭資訊的方法,對應於HTTP的HEAD requests.post() 向HTML網頁提交POST請求的方法,對應於HTTP的POST requests.put() 向HTML網頁提交PUT請求的方法,對應於HTTP的PUT requests.patch() 向HTML網頁提交區域性修改請求,對應於HTTP的PATCH requests.delete() 向HTML頁面提交刪除請求,對應於HTTP的DELETE requests.get() 獲取HTML網頁的主要方法,對應於HTTP的GET ''' # 測試一百次requests需要多長時間 n = 0 url = 'http://www.baidu.com' #while n < 100: get_html_text(url) print(get_html_text(url)) n += 1 ''' ====網路爬蟲的尺寸 網頁 requests 網站 scrapy 全網 定製開發 ====網路爬蟲引發的問題 效能騷擾 法律風險 隱私洩露 ====robots協議 Robots Exclusion Standard,網路爬蟲排除標準 ==作用: 網站告知網路爬蟲哪些頁面可以抓取,哪些不行 ==形式: 在網站根目錄下的robots.txt檔案 # *代表所有,/代表根目錄 User‐agent: * Disallow: / '''