Python requests.get代理无法正常工作?

时间:2013-09-23 00:17:51

标签: python proxy python-requests

我是新开发者,所以请原谅我的无知。

我正在尝试使用代理访问Python中的一些网页。我已经尝试使用urllib2和请求模块以及我相信正在工作的各种代理。但是,当我去一个站点验证我的ip是否显示为代理时,它仍然显示我的实际IP地址而不是代理!

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

  1. 这些模块坏了。这似乎不太可能,但可能。
  2. 我的代码不正确。极有可能,但我无法确定任何错误。
  3. 有一些方法可以检测根IP,即使它们是通过代理进行路由。
  4. 我没有想过的东西。
  5. 感谢任何帮助!

    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)
    

1 个答案:

答案 0 :(得分:1)

您的代码似乎非常正确。我怀疑这些网站实际上正在使用X_FORWARDED_FOR或其他类似的HTTP标头值,使您的选项3最有可能。

您的所有示例当然都使用我的原始IP地址而不是我的代理地址,除非我通过VPN反弹,这表明他们实际上正在使用此标头。