提问人:DoctorEvil 提问时间:8/19/2023 更新时间:8/19/2023 访问量:94
如何在使用代理时阻止站点看到您的源 IP 地址?
How to stop your source IP address being seen by a site while using proxies?
问:
我正在尝试使用代理从网站上抓取一些数据,我不会在这里放置任何代码,因为它有点长,可能对问题不重要。我可以列举这些事实:
- 我拥有的代码有时确实有效,这意味着它应该很好
- 在几十个请求之后,脚本被阻止(即使使用轮换代理!)
- 现在有趣的部分是:在被一个代理提供商阻止后,如果我立即切换到下一个代理提供商,那个代理提供商也会被阻止!
- 我尝试过 和 ,但两者都以同样的方式失败。
requests.session()
httpx.Client()
所以我认为这里唯一的结论是,我的 IP 以某种方式被这些代理泄露并显示给网站,触发了它的阻止。有问题的代理是 Brightdata Datacenter(便宜的)和 proxy-cheap.com 的住宅代理,它们应该会更好一些。
有没有办法防止我的 IP 与代理一起发送?我真的不认为有其他选择,在让它们最初工作一段时间后,他们怎么能阻止来自不同提供商的轮换代理。
顺便说一句,我敢肯定这不是我的错误,会话是这样创建的
,
因此每个请求都使用相同的代理。session = httpx.Client(proxies={"http://":proxy_url, "https://":proxy_url})
答:
0赞
Homo Antiquum
8/19/2023
#1
我相信简单的解决方案是购买精英代理,因为某些代理会告诉服务器请求是由代理发出的。
评论
httpx.Client
似乎以大致等同于 .根据请求
高级使用指南,对象会在从 Session 实例发出的所有请求中保留 cookie。我认为,AFAIU 服务器可以通过其 cookie 来识别客户端。如果是这样,那么您可以尝试在 中禁用对 cookie 的支持,或者在更改代理之前创建一个新实例(以防服务器需要 cookie)...requests.Session
Session
Session
Session