如何防止豆瓣封IP?

如題:
題主python菜鳥一隻,專業文科向,已經學習python差不多三個月了,按照如何入門 Python 爬蟲?中的回答,給自己定了一個爬豆瓣電影短評的小目標,但學會了用正則和美味湯摳出自己要的內容後,發現IP被封了,我讓程序每休眠3秒鐘爬一次貌似還是會被封。。求大神指點如何偽裝IP,哪怕是一個軟體也可以,百度了好多發現回答都是06年的。。。題主灰常笨灰常笨,希望答主能盡量將回答寫詳細,多謝。
下圖是出現的錯誤截圖:


要躲別人的查封基本不太優雅,感覺用代理最簡單,打一槍換一個地方,以前測試過go agent抓豆瓣:

#coding=utf-8
import urllib2
import urllib
import cookielib
from bs4 import BeautifulSoup

proxy_support = urllib2.ProxyHandler({"http":"http://127.0.0.1:8087"})
opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
for i in range(0,10):
content = urllib2.urlopen("http://ip.chinaz.com/").read()
#print content
soup=BeautifulSoup(content)
info=soup.find(attrs={"class":"info3"})
print info.find(attrs={"class":"red"}).get_text(),info.contents[3].get_text()

下面那個循環只是用來在頁面里找出ip的,有用的只是proxy_support那一句。

註:此處的代理是GoAgent,urllib2的代理,默認採用ie的代理設置,所以上面的127.0.0.1:8087"也就是在ie中使用goagent時的地址和埠,IP地址查詢 - 站長工具是一個可以查看ip的網站,使用GoAgent的代理以後,確實每次ip每次都不同了,這樣便可以完美隱藏爬蟲了。


以下是通用答案。

1.在大流量IP段內,使用多賬號爬行。在小流量IP段內,使用少賬號爬行。

2.禮貌爬行,不行就擬人爬行。你可以計算一下,你自己閱覽網頁的速度。

3.代理爬行。

4.模擬瀏覽器。這一點是基礎,不用提了吧?你直接用庫爬行連http head都不改,被封活該啊。


你登陸了嗎?
我是用登陸了之後的cookie配合一定的間隔(肯定沒有三秒這麼多)來爬的,沒有問題。


API


豆瓣 垃圾垃圾 竟然還封ip


推薦閱讀:

如何理解《踏血尋梅》中臧sir問前妻的「為何有人會跟首次見面的人說自己想死?對方又為何真的相信?」
有哪些電影你當時不喜歡後來卻改變了的?驚為神作的?
戰狼2改名為抗非奇俠是否更貼切?
如果約翰尼德普以巔峰時期的顏來飾演瘋帽子會有什麼效果?
為什麼我常常覺得豆瓣電影上許多人在裝逼?

TAG:Python | 豆瓣電影 | 爬蟲計算機網路 | Python入門 |