【问题标题】:not getting a urllib response on some urls that opens regularly in the webbrowser在网络浏览器中定期打开的某些 url 上没有得到 urllib 响应
【发布时间】:2020-11-07 08:43:36
【问题描述】:

我在 python3 上遇到 urllib 问题,我不知道如何解决。 这是我的代码:

import urllib.request
       hdr = { 'User-Agent' : 'super happy flair bot by /u/spladug' }
       req = urllib.request.Request(url,headers=hdr)
       data = urllib.request.urlopen(req,timeout=10).read()
       return data

我尝试过的东西:

  1. 更改用户代理
  2. 添加和删除超时
  3. 卷曲这些网站

但仍有一些网站(以 http://xxx.xxx/aaa.png 或 .jpg 之类的图像文件扩展名结尾)我无法得到回复, 如果我设置超时,我会收到 TimeOutError。但如果我在 chrome 中打开同一个站点,一切正常。 有人有任何解决方案或面临问题吗?

网站示例 - https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/00117731276964____5__210x210.jpg

【问题讨论】:

  • 如果没有至少一个导致问题的 URL 示例,任何人都很难解决此问题。尝试将代码问题发布为可重现的示例:stackoverflow.com/help/minimal-reproducible-example
  • @CrazyChunky 哎呀,忘了添加站点示例sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/…
  • 获取此消息
  • 我没有解决方案,但是要添加到“不起作用”堆中的东西:复制 Chrome 成功访问 URL 时发送的整组标头,检查是否有重定向正在进行(没有),并运行 curl 和 -k 以防万一出现某种 SSL 错误。 (也尝试requests,虽然我看到你在对安德烈的回答的赞扬中提到了这一点。)我不知道为什么它不起作用,但如果你编辑你的问题,更详细地了解什么是 not 工作,它可能有助于吸引正确的人的眼睛。

标签: python urllib urllib3


【解决方案1】:

我不知道你的代码有什么错误,但我使用的是requests,我从来没有遇到过这个问题。

import requests
response=requests.get(URL)
print(response.text)

如何在请求中使用Headers .get(): Using headers with the Python requests library's get method

【讨论】:

  • 我没有收到任何错误,因为我什至没有得到响应。我知道如何使用 requests 和 urllib ,只是一些特定的网站不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多