我尝试使用 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/