在写爬虫爬取数据的时候,经常遇到如下的提示,
HTTP Error 403: 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, 使用那些高匿的代理。推荐这个网站