在寫爬蟲爬取資料的時候,經常遇到如下的提示,
HTTP Error : Forbidden
之前已經寫了一個使用多個
headers
的筆記,但是這種還是隻有一個IP 隻不過是僞裝為不同的浏覽器而已,是以想做到更近一步防止被封,還是需要及時更換不同IP,下面記錄一下
python
使用代理爬取的過程。PS: 爬蟲盡量不要太頻繁的說。。。
直接上代碼吧:
proxy_list=[#這是我當時用的代理IP,請更新能用的IP
'202.106.169.142:80',
'220.181.35.109:8080',
'124.65.163.10:8080',
'117.79.131.109:8080',
'58.30.233.200:8080',
'115.182.92.87:8080',
'210.75.240.62:3128',
'211.71.20.246:3128',
'115.182.83.38:8080',
'121.69.8.234:8080',
]
#接着在你使用的到urllib2的代碼中,綁定某個IP,如下:
proxy = random.choice(proxy_list)
urlhandle = urllib2.ProxyHandler({'http':proxy})
opener = urllib2.build_opener(urlhandle)
urllib2.install_opener(opener)
#正常使用urllib
req = urllib2.Request(listurl,headers=headers)
content = urllib2.urlopen(req).read()
根據具體在爬取時光網,豆瓣的電影時,的使用經驗:說明一下
- 免費的代理很不太穩定,如果大量長時間爬取,還是稍微花點小錢吧,很便宜。
- 找那些免費代理IP, 使用那些高匿的代理。推薦這個網站