2024-04-26 20:44:24 发布
网友
我的代码被这个函数调用卡住了:
feedparser.parse("http://...")
这以前有用。甚至无法在浏览器中打开url。 你怎么治好这个案子?有可能超时吗?我想继续,好像什么都不会发生(只打印一些消息或记录此问题)
可以使用socket.setdefaulttimeout()全局指定超时。在
socket.setdefaulttimeout()
超时可能会限制单个套接字操作的持续时间feedparser.parse()可以执行许多套接字操作,因此用于dns、建立tcp连接、发送/接收数据的总时间可能要长得多。见Read timeout using either urllib2 or any other http library。在
feedparser.parse()
使用Pythonrequests库进行网络IO,feedparser仅用于解析:
requests
# Do request using requests library and timeout try: resp = requests.get(rss_feed, timeout=20.0) except requests.ReadTimeout: logger.warn("Timeout when reading RSS %s", rss_feed) return # Put it to memory stream object universal feedparser content = BytesIO(resp.content) # Parse content feed = feedparser.parse(content)
可以使用
socket.setdefaulttimeout()
全局指定超时。在超时可能会限制单个套接字操作的持续时间
feedparser.parse()
可以执行许多套接字操作,因此用于dns、建立tcp连接、发送/接收数据的总时间可能要长得多。见Read timeout using either urllib2 or any other http library。在使用Python
requests
库进行网络IO,feedparser仅用于解析:相关问题 更多 >
编程相关推荐