一、前言最近在做一个项目,有个比较耗时的操作是启用线程进行异步操作,当时在启用的线程时,突然发现子线程无法获取父线程中的HttpServletRequest请求对象,因为是第一次遇到这种问题,所以记录一下解决方案。二、问题模拟在这里,我们简单模拟一下出现的问题。我们首先编写一个简单的hello请求,代码如下:/***主线程获取*@return*/@GetMapping("/hello")publicStringhello(){Stringname="";HttpServletRequestrequest=RequestUtils.getRequest();if(null==request){l
前言嗨喽~大家好呀,这里是魔王呐❤~!目录前言爬虫报错展示:报错原因:解决方法:备注:尾语爬虫报错展示:requests.exceptions.JSONDecodeError:Expectingvalue:line1column1(char0)某平台商品评论为例报错原因:这里是获取response.json()获取响应的json字典数据,因为你请求返回的数据不是完整的json数据格式,所以从而导致报错!解决方法:先打印response.text查看返回数据效果当我打印response.text,返回不是完整的json数据,反而多了一部分内容这样的情况,只需要删掉链接或者请求参数里面的callb
前言嗨喽~大家好呀,这里是魔王呐❤~!目录前言爬虫报错展示:报错原因:解决方法:备注:尾语爬虫报错展示:requests.exceptions.JSONDecodeError:Expectingvalue:line1column1(char0)某平台商品评论为例报错原因:这里是获取response.json()获取响应的json字典数据,因为你请求返回的数据不是完整的json数据格式,所以从而导致报错!解决方法:先打印response.text查看返回数据效果当我打印response.text,返回不是完整的json数据,反而多了一部分内容这样的情况,只需要删掉链接或者请求参数里面的callb
最近通过postman发起另外一个项目的请求,鉴权较为复杂,首先需要设置cert,postman中设置如下:需要设置basicauth的参数然后将接口返回的token放入auth的bearertoken中。实际使用时发现使用postman的数据驱动功能较为麻烦,而且不利于对测试结果日志采集,于是通过requests实现该功能代码如下requests.post(token_url,auth=HTTPBasicAuth(username,password),cert=(cert_path,key_path),verify=False).textHTTPBasicAuth为设置basicauth的鉴
在使用Python的requests库时,可以通过设置代理来使用Clash软件提供的代理IP。以下是设置代理IP的步骤:首先,需要确保Clash软件已经安装并且启动,并且在Clash软件中已经添加了需要使用的代理。然后,在Python中使用requests库发送请求时,可以通过设置proxies参数来设置代理。proxies参数是一个字典类型,包含代理的类型和代理的地址。一般本机的Clash软件的HTTP代理地址为127.0.0.1:7890,可以通过以下代码来设置代理:importrequestsproxies={"http":"http://127.0.0.1:7890","https":
请求中添加cookies对于某些网站,登录然后从浏览器中获取cookies,以后就可以直接拿着cookie登录了,无需输入用户名密码。一、在参数中添加cookie在发送请求时使用cookies代码示例:importrequests#1,在参数中添加cookie_dict={"login_name":"admin"}#cookie做一个变量,然后再请求中使用cookiesresponse=requests.get(url="http://www.hnxmxit.com",cookies=cookie_dict)查看执行结果: 二、在头部添加cookie在发送请求时使用headers代码示例:#2
selenium要求urllibs版本为1.26,requests要求urllibs版本=1.21.升级requests版本为最新版,就可以兼容。在conda中安装selenium报错,urllib3版本出现错误。pip3uninstallurllib3pip3install--upgraderequests然后安装seleniumpipinstallselenium成功查看selenium版本号pipshowselenium
目录问题及原因分析优先考虑的解决方法:下载证书使用证书手动获取证书不推荐使用的备用解决方法:关闭方法衍生问题参考文档问题及原因分析在我们通过urllib3和requests进行HTTPS请求时,可能会出现SSLError的错误:示例1找不到对应的本地证书CausedbySSLError(SSLCertVerificationError(1,'[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed:unabletogetlocalissuercertificate示例2服务端证书过期CausedbySSLError(SSLCertVerifi
第一步找到pycharm中的虚拟环境的位置 第二步打开虚拟环境位置的文件夹 找到Scripts的这个文件夹然后复制该文件夹的地址 第三步打开“运行”(可以用快捷键WIN+R键打开)然后输入cmd第四步切换目录到虚拟环境的盘符输入“D:”(我的虚拟环境在D盘所以切换到D盘) 第五步 输入“cdD:\pythonProject\Scripts”(地址非固定根据个人安装位置决定)切换目录到具体的虚拟环境文件夹的Scripts中 第六步输入“pipinstallrequests”后即可解决问题最后出现这样的样式既是成功然后重新运行你的代码就不会报错啦
requests对urllib3要求版本低于1.23,而selenium要求urllib3高于1.26,直接用pipinstallrequests安装的版本是旧的(解决办法:下载最新版的requests下载链接:https://pypi.org/project/requests/#files随后一番解压操作即可-tar-zxvf.\xxx.tar.gz 将文件解压到当前文件夹-cd.\xxx 进入解压后的文件夹下-python.\setup.pyinstall然后尴尬的发现还是没有解决我爬数据出现的问题