溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python反爬蟲限制訪問的解決方法

發(fā)布時間:2020-11-25 09:14:04 來源:億速云 閱讀:244 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)python反爬蟲限制訪問的解決方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

單臺機(jī)器,單個IP大家都明白,短時間內(nèi)訪問一個網(wǎng)站幾十次后肯定會被屏蔽的。每個網(wǎng)站對IP的解封策略也不一樣,有的1小時候后又能重新訪問,有的要一天,有的要幾個月去了。

突破抓取頻率限制有兩種方式,一種是研究網(wǎng)站的反爬策略。有的網(wǎng)站不對列表頁做頻率控制,只對詳情頁控制。有的針對特定UA,referer,或者微信的H5頁面的頻率控制要弱很多。

 

另一種方式就是多IP抓取

IP抓取又分IP代理池和adsl撥號兩種,我這里說adsl撥號的方式,IP代理池相對于adsl來說,我覺得收費太貴了。要穩(wěn)定大規(guī)模抓取肯定是要用付費的,一個月也就100多塊錢。adsl的特點是可以短時間內(nèi)重新?lián)芴柷袚QIP,IP被禁止了重新?lián)芴栆幌戮涂梢粤?。這樣你就可以開足馬力瘋狂抓取了,但是一天只有24小時合86400秒,要如何一天抓過百萬網(wǎng)頁,讓網(wǎng)絡(luò)性能最大化也是需要下一些功夫的,后面我再詳說。至于有哪些可以adsl撥號的野云主機(jī),你在百度搜"vps adsl",能選擇的廠商很多的。大多宣稱有百萬級IP資源可撥號,我曾測試過一段時間,把每次撥號的IP記錄下來,有真實二三十萬IP的就算不錯了。 選adsl的一個注意事項是,有的廠商撥號IP只能播出C段和D段IP,110(A段).132(B段).3(C段).2(D段),A和B段都不會變,靠C,D段IP高頻次抓取對方網(wǎng)站,有可能對方網(wǎng)站把整個C/D段IP都封掉。C/D段加一起255X255就是6萬多個IP全都報廢,所以要選撥號IP范圍較寬的廠商。 這些都是野云主機(jī),質(zhì)量和穩(wěn)定性本就沒那么好。只有多試一試,試的成本也不大,買一臺玩玩一個月也就一百多元,還可以按天買。

上面為什么說不用付費的IP代理池?

因為比adsl撥號貴很多,因為全速抓取時,一個反爬做得可以的網(wǎng)站10秒內(nèi)就會封掉這個IP,所以10秒就要換一個IP,理想狀況下一天86400秒,要換8640個IP。如果用付費IP代理池的話,一個代理IP收費4分錢,8640個IP一天就要345元。 adsl撥號的主機(jī)一個月才100多元。adsl撥號Python代碼怎么撥號廠商都會提供的,建議是用廠商提供的方式,這里只是示例:windows下用os調(diào)用rasdial撥號:

import os
# 撥號斷開
os.popen('rasdial 網(wǎng)絡(luò)鏈接名稱 /disconnect')
# 撥號
os.popen('rasdial 網(wǎng)絡(luò)鏈接名稱 adsl賬號 adsl密碼')

linux下?lián)芴枺?/span>

import os
# 撥號斷開
code = os.system('ifdown 網(wǎng)絡(luò)鏈接名稱')
# 撥號code = os.system('ifup 網(wǎng)絡(luò)鏈接名稱')

關(guān)于python反爬蟲限制訪問的解決方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI