昨天在爬取大众点评的时候,刚开始还好好的,但一会就把我的ip给封啦,所以我就想给自己弄一个ip池,这样我就可以继续爬啦。网上找了一堆代码,发现好多都是python2的,它们请求使用urllib2的库,这个库在python3中合并成urllib,所以很多方法调用都出现错误,所以我还是决定用requests。
一、获得代理ip
def get_ip_list(obj):
ip_text = obj.findAll('tr', {'class': 'odd'}) # 获取带有IP地址的表格的所有行
ip_list = []
for i in range(len(ip_text)):
ip_tag = ip_text[i].findAll('td')
ip_port = ip_tag[1].get_text() + ':' + ip_tag[2].get_text() # 提取出IP地址和端口号
ip_list.append(ip_port)
print("共收集到了{}个代理IP".format(len(ip_list)))
print(ip_list)
return ip_list
url = 'http://www.xicidaili.com/'
headers = {
'User-Agent': 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}
request = Request(url, headers=