Python的request出现问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的request出现问题?相关的知识,希望对你有一定的参考价值。
求大佬们帮我看看下面这是什么情况:看文件位置好像是个request.py文件出了问题。第一个是运行输出,第二个是我编的程序。
edge://surf 是一个特殊的url,只能用Edge浏览器访问,故用request会出错,如果你希望保存该网页,可以在Edge中打开该页面,然后按F12打开DevTools,转到"源代码"标签,将列表中的所有文件都保存到同一个文件夹
参考技术A 所提供的搜索结果不回答这个问题。查询是寻求帮助,Python的请求模块相关技术问题,没有提供搜索结果的地址。python requests请求卡住问题
最近经常接到别人反馈某个爬虫工具程序没有正常运行,需要下载的资讯数据也没有及时进行收录。
刚开始以为可能是机器的问题,偶尔机器会出现程序运行中途卡住的情况。
但随着异常的情况越来越频繁,我便只好去排查问题。
通过查看程序运行的日志信息,发现程序总是卡在requests请求的那一步。
这让我觉得很奇怪,这一步为什么会卡住呢,我已经设置了超时时间,按理说超时的话程序会进入异常啊,然而却什么异常信息都没有输出。
查找了相关的资料,发现确实存在这种情况。
requests文档上有写,timeout is not a time limit on the entire response download; rather, an exception is raised if the server has not issued a response for timeout seconds (more precisely, if no bytes have been received on the underlying socket for timeout seconds). If no timeout is specified explicitly, requests do not time out.
大概的意思就是说requests请求上设置的timeout不是整个响应下载的时间限制,这里的timeout应该理解为与服务器连接后接收数据的时间,如果超过规定的时间则为超时。这与我之前的理解有很大不同。
那么如何解决这个问题呢?
目前有两种方法解决,一种是更改dns,并且推荐阿里的dns,因为他们认为这里的卡住是因为卡在了dns解析那里。
另一种则是设置全局的socket超时时间,通过
import socket
socket.setdefaulttimeout(时间)
这两句代码来解决。
通过测试,使用第二种方案后,程序还是会卡住。(难道真的是卡在dns解析?如果是的话,只能更改dns吗?有没有别的办法?)
因为目前对网络连接方面不是很了解,所以尚不太清楚具体原因。这个问题先留在这,待解决时再来补充。
以上是关于Python的request出现问题?的主要内容,如果未能解决你的问题,请参考以下文章
Python烧瓶使用ajax request.files上传文件为空
关于String path = request.getContextPath(); String basePath = request.getScheme()+"://"+requ