Python请求,更改IP地址

5 python http python-requests

我正在使用以下 Python 代码为网站编写 Web 抓取工具:

import requests

def scrape(url):
    req = requests.get(url)
    with open('out.html', 'w') as f:
        f.write(req.text)
Run Code Online (Sandbox Code Playgroud)

它工作了几次,但随后网站返回了一个错误的 HTML 页面(当我打开浏览器时,我有一个验证码要完成)。

有没有办法通过例如更改 IP 地址来避免这种“禁令”?

小智 15

正如评论和您自己已经提到的那样,更改 IP 可能会有所帮助。要轻松做到这一点,请查看 vpngate.py:

https://gist.github.com/Lazza/bbc15561b65c16db8ca8

链接中提供了操作方法。

玩得开心


AJ *_*man 9

您可以在请求库中使用代理。你可以在几个不同的网站上找到一些免费的代理,比如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)
Run Code Online (Sandbox Code Playgroud)


小智 9

我最近在另一个问题上回答了这个问题但是使用requests-ip-rotator库通过 API 网关轮换 IP 通常是最有效的方法。
每个区域的前一百万个请求都是免费的,这意味着您不必将数据提供给不可靠的代理网站。