python-3.x - 卡在带有 urllib (python3) 的打开网址上

标签 python-3.x urllib

我尝试使用 python3 打开网址:

import urllib.request
fp = urllib.request.urlopen("http://lebed.com/")

mybytes = fp.read()    
mystr = mybytes.decode("utf8")
fp.close()

print(mystr)

但它卡在第二行。 这个问题的原因是什么以及如何解决?

最佳答案

我想原因是该url不支持机器人访问站点访问。您需要通过发送浏览器 header 和请求来伪造浏览器访问

import urllib.request
url = "http://lebed.com/"
req = urllib.request.Request(
    url, 
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)
f = urllib.request.urlopen(req)

在我的系统上尝试了这个,它可以工作。

关于python-3.x - 卡在带有 urllib (python3) 的打开网址上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45768441/

相关文章:

python-3.x - python xpath返回空列表

python - 无法从 url 读取压缩文件

python - 从 url 获取编码的 csv 到 Pandas

Python urllib 向 Google 网站请求速度缓慢

python - urllib.urlopen 有效,但 urllib2.urlopen 无效

python - Google 应用引擎给我 400 错误请求状态代码?

python-3.x - tensorflow api 2.0 张量对象仅在启用急切执行时才可迭代。要迭代此张量,请使用 tf.map_fn

python - 弃用警告 : invalid escape sequence - what to use instead of\d?

python - 获取字典/json中键的类型

Python 在 Mac OSX 上没有显示正确的版本