a.假設獲取的是二進制文件,則可以借鑑如下方法保存數據:
import requests
r = requests.get('https://www.baidu.com/img/bd_logo1.png')
with open('baidu.png', 'wb') as fp:
fp.write(r.content)
b.爲了反爬,有些網站會對Headers的User-Agent進行檢測,需將headers信息傳遞給get函數的headers參數,例如知乎,直接訪問會返回400,加上headers參數後可正確返回:
>>> re = requests.get('https://www.zhihu.com')
>>> re.status_code
400
# headers可從http測試網站https://httpbin.org或瀏覽器的“開發者工具”獲得
>>> headers = {"User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11"}
>>> re = requests.get('https://www.zhihu.com', headers = headers)
>>> re.status_code
200
反爬的策略還有很多,需要逐漸熟悉,有些網站要想獲得數據還需要登錄,需要分析登錄需要的屬性
c. 被JS渲染過的頁面內容獲取
可以通過瀏覽器的“開發者工具”功能尋找真正提供數據的頁面,有時會有一定的難度。