在通過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地址)