爬取靜態網頁
定制Requests 2019-04-06
一. 傳遞URL參數
自己構建的url中, 數據一般會跟在一個問號後面, 並以鍵-值的形式放在url中.
在Requests中, 我們可以把這些參數保存在字典中, 用params構建至url中.
I.E:
key_dict = {‘key1‘: ‘value1‘, ‘key2‘, ‘value2‘}
r = requests.get(‘http://......‘, params=key_dict)
print(r.url) # 返回編碼後的url
上述代碼實現了 將key1=value1, key2=value2傳遞到網站的url請求中
二. 定制請求頭
第一步, 查看網頁內置的Header
在網頁上右擊, 打開"元素審查"或"檢查"選項, 在打開的頁面中選擇Network選項, 在左側資源中找到需要請求的網頁, 隨後打開的窗口中的Header選項中查看
Requests Header的詳細信息.
第二步, 根據查找到的信息編寫 自己的請求頭.其中需包括[user-agent] [Host]參數.
三. 發送Post請求
發送一些編碼為表單形式的數據( 因為如果用Get請求, 數據就會顯示在url中, 這是不安全的), 只需要傳入一個字典類型給Requests的[data]參數
四.設置超時
防止遇到服務器長時間不響應 導致爬蟲一直處在等待狀態, 用Requests的[timeout]參數設置超時,
I.E: r = requests.get(link, timeout= 0.001) # 0.001秒內無響應則拋出異常(一般設置為20秒)
爬取靜態網頁