python3urlopen在浏览器中打开时引发404错误

2024-06-28 19:29:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python3.4.6中使用urllib.request来打开https://www.ethz.ch/(实际的url更长,但问题是相同的),这在Firefox中很好地打开,但是在python中抛出404错误。在

这是密码

from urllib.request import urlopen
connection = urlopen('https://www.ethz.ch/')

并给出以下错误消息

^{pr2}$

不过,过去的代码运行良好。另一条信息是我不是机器的根用户,python3从3.4.5升级到了3.4.6。因此,要么来自web服务器端,要么来自python端。我既不是python也不是web专家,所以我自己也搞不懂。在

希望有人能帮我。在


Tags: fromhttpsimportweburl密码requestwww
2条回答

多亏了Francisco的评论和that post我可以用下面的代码使它工作

from urllib.request import Request, urlopen
req = Request('https://www.ethz.ch/', headers={'User-Agent': 'Mozilla/5.0'})
connection = urlopen(req)

我还检查了python2.7.13和urllib2的原始版本,它起作用了。显然python3.5可以工作(Laxmikant的回答),它最初是在3.4.5下工作的。所以在从3.4.5升级到3.4.6时发生了一些错误。在

@pheidipides检查你的整个url中是否有打字错误,这对我很有用:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
$>from urllib.request import urlopen
$>connection = urlopen('https://www.ethz.ch/')
$>connection.read()

相关问题 更多 >