python網路爬蟲(沒有使用scrapy)中如何克服封ip問題?

本人在爬取鏈家網二手房信息,通過一個循環遍歷所有的城區,但是由於數目較多,爬去速度較快(已經使用time.sleep限制了爬行速率),但是還是會遇到一段時間之後讓我輸入驗證碼(選擇倒置房屋圖片,無法使用機器識別),再過一段時間會封鎖ip,之前搜索過用proxies進行解決,但是好像沒用對,想請教一下proxies的用法。

以下是我的設計,隨機抽取ip池中的ip,我看過別人寫的代碼,直接將所有ip寫到一個字典中,用作proxies,我也試過了,為何還是不行?請教前輩。


封殺ip一般都是防止爬蟲的大殺器,一般沒什麼網站用的。

如果是利益相關,可以考慮付費使用代理。

其實有一個東西叫做 tor 的東西,供你使用。

不過我一般不傾向於是ip的問題。


你用代理,防爬就沒辦法追蹤到源IP嗎?

只有真正的分散式

才好解決滴。

而且,你用代理的這些IP,是真的好IP嘛


一般別直接考慮是IP的問題, 沒人打仗直接上核彈.

1. 最基本的, 你User-Agent換了沒?

2. cookie 分析了沒?


樓主,你解決這個問題了么?我最近也在爬,一般爬100條左右就會流量異常,人肉驗證一次後可以繼續爬100條左右。

headers={

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
"connection":"keep-alive",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate, sdch",
"Accept-Language":"zh-CN,zh;q=0.8",
}

我頭文件這麼寫的,用的requests


很少出現ip被封的情況,一般考慮爬蟲偽裝的像不像普通用戶在瀏覽。

另外不要使用透明代理,會暴露來源ip。

純手寫爬蟲建議使用requests庫,或者非同步的aiohttp庫,更好用一點。


推薦閱讀:

怎樣自學Python?
學習數據結構有什麼用?
為什麼 Python 中的複數形式是 (a + bj) 而不是 (a + bi) ?
py交易的梗是怎麼出現的?
我用flask-sqlalchemy為什麼無法更新我的sqlite文件?

TAG:Python | 爬蟲計算機網路 | IP地址 | 網頁爬蟲 | IP限制 |