Python请求,更改IP地址

时间:2018-01-25 16:30:51

标签: python http python-requests

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

import requests

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

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

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

3 个答案:

答案 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 通常是最有效的方法。
对于每个区域的前一百万个请求,它是免费的,这意味着您不必将数据提供给不可靠的代理站点。