【问题标题】:Python urllib2 - cannot open urlPython urllib2 - 无法打开网址
【发布时间】:2017-08-06 07:27:15
【问题描述】:

我正在创建一个脚本,它使用 urllib2 从 zhaopin.com 上的搜索查询中读取信息

当我尝试通过将 url 复制到我的网络浏览器 (Chrome) 来打开它时,我打开网站没有问题:http://sou.zhaopin.com/jobs/searchresult.ashx?p=1&isadv=0&bj=160000&in=160200

当我使用 urllib2 打开 url 时,我收到错误消息 HTTPError: HTTP Error 502: Bad Gateway。通过搜索谷歌,我无法弄清楚我做错了什么。

import urllib
data = {}
data['in']='160200'
data['bj']='160000'
data['isadv']='0'
data['p']=1

url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?'
url_values = urllib.urlencode(data)
full_url= url + url_values
print full_url
response = urllib2.urlopen(url)
html = response.read()
response.close()

可能是 URL 的问题:在 Chrome 中打开 URL 后,“http://”消失了。如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 你在中国的防火墙后面吗?尝试使用 Wireshark 捕获 HTTP 会话并查看原始数据。请求中的差异应该在那里可见。
  • 地址栏中http的消失只是一个chrome功能而已。

标签: python urllib bad-gateway


【解决方案1】:

尝试使用 urllib 代替 urllib2:

response = urllib.urlopen(url)
html = response.read()
response.close()

【讨论】:

    【解决方案2】:
    HTTP Error 502: Bad Gateway
    

    当您尝试的服务器配置错误时,会发生上述错误。错误配置可能是由于服务器正在重新启动或当时不可用。

    此错误也可能是后端计算机之间的 IP 通信不畅造成的,可能包括您尝试访问的站点上的服务器。可能是服务器超载了。

    您可以在代码中使用urllib 本身来打开网址。

    import urllib
    data = {}
    data['in']='160200'
    data['bj']='160000'
    data['isadv']='0'
    data['p']=1
    
    url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?'
    url_values = urllib.urlencode(data)
    full_url= url + url_values
    print full_url
    response = urllib.urlopen(url)
    html = response.read()
    response.close()
    

    【讨论】:

      猜你喜欢
      • 2013-12-18
      • 2012-07-12
      • 2021-08-06
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2019-12-02
      • 2012-08-12
      • 2014-09-14
      相关资源
      最近更新 更多