【发布时间】: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 后。
【问题讨论】:
-
这个确切的代码在我的机器上运行良好。可能是网络问题
-
是的,这就是我所害怕的。不过,让我看看是否有人有使其工作的变通解决方案。