Python请求.get代理不起作用?

2024-03-29 13:46:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新开发人员,请原谅我的无知。在

我正在尝试使用代理访问Python中的一些网页。我尝试过将urllib2和requests模块与我认为有效的各种代理结合使用。但是,当我去一个站点验证我的ip是否显示为代理时,它仍然显示我的实际ip地址,而不是代理!在

这使我得出结论,有四种可能的情况:

  1. 这些模块坏了。这似乎不大可能,但可能。在
  2. 我的代码不正确。很有可能,但是我不能确定具体的错误。在
  3. 有一些方法可以检测根IP,即使它们是通过代理路由的。在
  4. 我还没想到。在

感谢任何帮助!在

import requests
import urllib2
from bs4 import BeautifulSoup

# Using requests module
proxy_dict = {"http":"http://123.45.172.115:8080"}
url = 'https://check.torproject.org/'
response = requests.get(url, proxies=(proxy_dict))
html = response.content
soup = BeautifulSoup(html)
ip = str(soup.b.text)

# Using urllib2
prox = urllib2.ProxyHandler(proxy_dict)
opener = urllib2.build_opener(prox, urllib2.HTTPHandler(debuglevel=1))
urllib2.install_opener(opener)
response = opener.open(url)

Tags: 模块importiphttpurl代理responsehtml
2条回答

你的代码看起来很正确。我怀疑这些网站实际上是在使用X_FORWARDED_FOR或其他类似的HTTP头值,这使得您的选项3最有可能。在

所有的例子都是使用我的原始IP地址而不是我的代理地址,除了当我通过VPN跳转时,这表明他们实际上在使用这个头。在

我遇到了一个类似的问题,结果是它是一个透明的代理,根IP正在被传递。所以选项3。在

您可以通过http://www.lagado.com/proxy-test运行一个请求来进一步测试这一点

这将显示您的请求所经过的任何透明代理,因此您可以测试代理是否实际工作。在

相关问题 更多 >