urlopen 未超时:不返回错误
Posted
技术标签:
【中文标题】urlopen 未超时:不返回错误【英文标题】:urlopen not timing out: no error is returned 【发布时间】:2021-10-16 08:21:27 【问题描述】:我试图在我的爬虫中加载这个页面,但是每当我运行它时,终端永远不会完成运行。下一行永远不会出现,我什至无法停止运行该行。如果我想继续,我必须关闭整个终端并启动一个新终端。我不知道为什么会这样,考虑到相同的代码适用于我正在使用的大多数其他网站。有谁知道为什么会发生这种情况,或者我该如何解决?
from urllib.request import urlopen as uReq
uWF = uReq('https://advisor.morganstanley.com/one-hundred-square-group', timeout=10)
page_html = uWF.read()
uWF.close()
uReq 行是代码似乎卡住的部分。我在该行中加入了“timeout=10”,这样我就不必不断关闭和打开新的控制台。
【问题讨论】:
您可能在某处遇到网络问题。可能是ssl的结果。你有什么例外吗 不,我不这么认为。什么都没有回来。不过,您的意思并不完全肯定。 您是在使用容器还是在本地运行它? @Sherif 我只是在本地运行这个 【参考方案1】:尝试使用requests
模块,但设置User-Agent
HTTP 标头:
import requests
headers =
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
print(
requests.get(
"https://advisor.morganstanley.com/one-hundred-square-group",
headers=headers,
).text
)
打印:
<!doctype html><html lang="en"><head>
...
【讨论】:
以上是关于urlopen 未超时:不返回错误的主要内容,如果未能解决你的问题,请参考以下文章