Requests的簡單用法
Requests主要方法:
- requests.request() #構造一個請求,支撐以下各方法的基礎方法
- requests.get() #get方法擷取網頁
- requests.head() #擷取網頁頭資訊的方法,對應HTTP的HEAD
- requests.post() #post方法擷取網頁資訊
- requests.put() # put方法擷取網頁資訊(一般用不到)
- requests.patch() # patch方法請求網頁資訊(一般用不到)
- requests.delete() #向HTML網頁送出删除請求
Requests.get的用法:
import requests # 導入方法
r = requests.get(url) #發送請求獲得相應
Response對象的屬性:
- r.status_code # 傳回的狀态碼,不同狀态碼代表不同意思,200表示傳回正常。
- r.text #傳回對象的文本内容
- r.content #猜測傳回對象的二進制形式
- r.encoding #分析傳回對象的編碼方式
- r.apparent_encoding #相應内容編碼方式(備選編碼方式)
- r.raise_for_status() #抛出異常
爬取豆瓣網頁資訊
分析豆瓣短評網頁是動态加載還是靜态加載
- 在谷歌浏覽器中進制js
- 如果是靜态加載則使用正常URL請求,如果是動态加載則分析真是請求。
使用Requests下載下傳資料
- 導入Requests庫
- 輸入URL
- 使用GET方法
- 列印傳回檔案
- 抛出異常
爬取網頁的通用架構
- 定義函數
- 設定逾時
- 異常處理
- 調用函數
代碼:
import requests
def getHTML(url):
try:
r = requests.get(url)
r.raise_for_status() #抛出異常
r.encoding = r.apparent_encoding
return r.text
except:
return "請求發生錯誤錯誤"
if __name__ == '__main__':
url = 'https://movie.douban.com/subject/1907464/'
print(getHTML(url))
爬蟲協定(robots)
什麼是爬蟲協定:
爬蟲協定又稱為robots協定,用來表明那些網站中那些内容可以抓去那些内容不可以抓去。
爬蟲協定檔案規範:
- 必須以robots.txt命名的文本檔案儲存;
- 必須儲存在網站的頂級目錄下;
爬蟲協定參數說明:
攔截所有爬蟲:
User-agent:*
Disallow:/
允許所有爬蟲:
User-agent:*
Disallow:
Allow:是允許爬取的内容
Disallow:是不允許爬取的内容
Crawl-delay:10:規定爬蟲延遲時間為10秒
檢視爬蟲協定:
直接在URL欄中,在頂級域名後輸入robots.txt即可檢視
例:www.baidu.com/robots.txt