我正在使用以下Python代码为网站编写网络抓取工具:
import requests
def scrape(url):
req = requests.get(url)
with open('out.html', 'w') as f:
f.write(req.text)
它可以工作几次,但网站会返回一个错误的HTML页面(当我打开浏览器时,我有一个验证码可以完成)。
有没有办法通过改变IP地址来避免这种“禁令”?
答案 0 :(得分:2)
正如评论和您自己所提到的,更改IP可能有所帮助。要做到这一点,请轻松查看vpngate.py:
https://gist.github.com/Lazza/bbc15561b65c16db8ca8
链接提供了如何提供。
玩得开心
答案 1 :(得分:2)
您可以将代理与请求库一起使用。您可以在https://www.sslproxies.org/和http://free-proxy.cz/en/proxylist/country/US/https/uptime/level3这样的几个不同的网站上找到一些免费代理,但并非所有代理都能正常工作,因此不应被敏感信息所信任。
示例:
proxy = {
"https": 'https://158.177.252.170:3128',
"http": 'https://158.177.252.170:3128'
}
response=requests.get('https://httpbin.org/ip', proxies=proxy)
答案 2 :(得分:0)
我最近在另一个问题 here 上回答了这个问题,但使用 requests-ip-rotator
库通过 API 网关轮换 IP 通常是最有效的方法。
对于每个区域的前一百万个请求,它是免费的,这意味着您不必将数据提供给不可靠的代理站点。