在通过requests代理进行网络爬虫,或者是scrapy进行网络爬虫时,不可避免用到IP代理方式一个IP多次访问导致IP地址被封禁,结果无法获取数据的尴尬。但是有时候出现IP代理无法失效的情况:
解决方法为:
查看请求的url地址使用的协议时http还是https,我们设置的代理ip的协议也应该时相同的协议,否则代理不会生效的。
代理方法如下:
# 验证ip地址是否正确,,
import requests
from lxml import etree
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0",
}
url = 'http://ip.tool.chinaz.com/'
proxies = {
"http": "http://120.78.185.175:8118"
}
wb_data = requests.get(url=url, headers=headers, proxies=proxies)
content = etree.HTML(wb_data.text)
print(content.xpath('//*[@id="rightinfo"]/dl/dd[1]/text()')[0])
我们可以在https://www.xicidaili.com得到ip列表(免费的ip代理,但是还是需要一个更快的的代理ip地址)