偽裝header。很多網站都會對Headers的User-Agent進行檢測,還有壹部分網站會對Referer進行檢測(壹些資源網站的防盜鏈就是檢測Referer)。如果遇到了這類反爬蟲機制,可以直接在爬蟲中添加Headers,將瀏覽器的User-Agent復制到爬蟲的Headers中;或者將Referer值修改為目標網站域名[評論:往往容易被忽略,通過對請求的抓包分析,確定referer,在程序中模擬訪問請求頭中添加]。對於檢測Headers的反爬蟲,在爬蟲中修改或者添加Headers就能很好的繞過。
2、基於用戶行為反爬蟲
還有壹部分網站是通過檢測用戶行為,例如同壹IP短時間內多次訪問同壹頁面,或者同壹賬戶短時間內多次進行相同操作。[這種防爬,需要有足夠多的ip來應對]
(1)、大多數網站都是前壹種情況,對於這種情況,使用IP代理就可以解決。可以專門寫壹個爬蟲,爬取網上公開的代理ip,檢測後全部保存起來。有了大量代理ip後可以每請求幾次更換壹個ip,這在requests或者urllib中很容易做到,這樣就能很容易的繞過第壹種反爬蟲。
編寫爬蟲代理:
步驟:
1.參數是壹個字典{'類型':'代理ip:端口號'}
proxy_support=urllib.request.ProxyHandler({})
2.定制、創建壹個opener
opener=urllib.request.build_opener(proxy_support)
3a.安裝opener
urllib.request.install_opener(opener)
3b.調用opener
opener.open(url)
用大量代理隨機請求目標網站,應對反爬蟲