Python爬蟲防封ip的一些技巧
在編寫爬蟲爬取數(shù)據(jù)的時候,因為很多網(wǎng)站都有反爬蟲措施,所以很容易被封IP,就不能繼續(xù)爬了。在爬取大數(shù)據(jù)量的數(shù)據(jù)時更是瑟瑟發(fā)抖,時刻擔(dān)心著下一秒IP可能就被封了。
本文就如何解決這個問題總結(jié)出一些應(yīng)對措施,這些措施可以單獨使用,也可以同時使用,效果更好。
偽造User-Agent
在請求頭中把User-Agent設(shè)置成瀏覽器中的User-Agent,來偽造瀏覽器訪問。比如:
headers ={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'} resp = requests.get(url,headers = headers)
還可以先收集多種瀏覽器的User-Agent,每次發(fā)起請求時隨機從中選一個使用,可以進(jìn)一步提高安全性:

把上面隨機選擇一個User-Agent的代碼封裝成一個函數(shù):

在每次重復(fù)爬取之間設(shè)置一個隨機時間間隔
比如:
time.sleep(random.randint(0,3)) # 暫停0~3秒的整數(shù)秒,時間區(qū)間:[0,3]
或:
time.sleep(random.random()) # 暫停0~1秒,時間區(qū)間:[0,1)
偽造cookies
若從瀏覽器中可以正常訪問一個頁面,則可以將瀏覽器中的cookies復(fù)制過來使用,比如:

注:用瀏覽器cookies發(fā)起請求后,如果請求頻率過于頻繁仍會被封IP,這時可以在瀏覽器上進(jìn)行相應(yīng)的手工驗證(比如點擊驗證圖片等),然后就可以繼續(xù)正常使用該cookies發(fā)起請求。
使用代理
可以換著用多個代理IP來進(jìn)行訪問,防止同一個IP發(fā)起過多請求而被封IP,比如:
附:GitHub上的一個"反反爬蟲"項目
道高一尺魔高一丈,你有反爬蟲措施,那我也有各種"反反爬蟲"的措施,GitHub上就有一位大神專門整理了一個這樣的項目:Anti-Anti-Spider,鏈接地址為:github.com/luyishisi/An可以研究一下。
以上就是Python爬蟲防封ip的一些技巧的詳細(xì)內(nèi)容,更多關(guān)于Python爬蟲防封ip的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python不改變Excel單元格樣式方式—xls和xlsx兩種格式
這篇文章主要介紹了Python不改變Excel單元格樣式方式—xls和xlsx兩種格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
pytorch實現(xiàn)特殊的Module--Sqeuential三種寫法
今天小編就為大家分享一篇pytorch實現(xiàn)特殊的Module--Sqeuential三種寫法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
深入解析Python設(shè)計模式編程中建造者模式的使用
這篇文章主要介紹了深入解析Python設(shè)計模式編程中建造者模式的使用,建造者模式的程序通常將所有細(xì)節(jié)都交由子類實現(xiàn),需要的朋友可以參考下2016-03-03

