python爬蟲抓取網站情況舉例

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渲染過的頁面內容獲取

可以通過瀏覽器的“開發者工具”功能尋找真正提供數據的頁面,有時會有一定的難度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章