【问题标题】:Website opens in Chrome but not while using urllib in Python网站在 Chrome 中打开,但在 Python 中使用 urllib 时无法打开
【发布时间】:2020-01-26 23:09:27
【问题描述】:

我在使用 Python 3 中的 urllib 从网站读取数据时遇到问题,导致我的程序停止运行(它没有给我任何错误消息,它看起来像是卡在一个循环上)。奇怪的是,这个相同的脚本适用于我尝试过的任何其他网站,除了这个。 我一直在做一些研究,并读到人们谈论“HTTP 错误 403:禁止”回溯,可以使用自定义用户代理将 URL 作为浏览器打开,但这并不能解决我的问题。

我几乎 100% 确定问题是来自 PC 的某种类型的限制,因为我在工作中使用 PC,PC 和网络在这里都有一些限制,但奇怪的是网站在我使用 Chrome 时打开。

此代码是由 Kardi Teknomo 在另一个主题上发布的,它是展示我的问题的一种有趣方式。

导入 urllib.request

url = "http://py4e-data.dr-chuck.net/known_by_Fikret.html"

page = urllib.request.Request(url,headers={'User-Agent': 'Chrome/76.0.3809.132'})
infile = urllib.request.urlopen(page).read()
数据 = infile.decode()

打印(数据)

尝试做同样的事情并以同样的方式失败的更简单的代码是这样的:

导入 urllib.request、urllib.parse、urllib.error

Fhandle = urllib.request.urlopen("http://py4e-data.dr-chuck.net/known_by_Fikret.html")
对于 Fhandle 中的行:
    行 = 行.decode().strip()
    打印(行)

我正在尝试做一些更复杂的事情,但为了解决问题,我试图用这段代码做的只是读取 HTML 页面并打印其内容,但程序总是卡在正确的位置如果我使用这些示例中的 URL,则按 Enter 后。

【问题讨论】:

  • 这个确切的代码在我的机器上运行良好。可能是网络问题
  • 是的,这就是我所害怕的。不过,让我看看是否有人有使其工作的变通解决方案。

标签: python urllib


【解决方案1】:

我在 IDE PyCharm 中使用 urllib.request.urlopen(link, context=ctx).read() 运行代码时遇到了同样的问题。代码在控制台中完美运行。为了在 IDE 中运行此代码,一旦通过 url = input('Enter url: ') 输入 url,将光标移动到行首,然后按“Enter”。

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2011-03-11
    相关资源
    最近更新 更多