解决:通过requests模块发出请求,看请求头里面的那个是浏览器里要校验的内容
页面源码中没有我们要的内容,也可以采用下面中方法看页面源码
可以看到,没有我们要的信息
import requests
url="http://www.whggzy.com/front/search/category"
heard={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
data={"utm":"sites_group_front.2ef5001f.0.0.f2bf05709d4611ed89de7773dd92516f","categoryCode":"GovernmentProcurement","pageSize":15,"pageNo":1}
resp=requests.post(url=url,headers=heard,data=data).text
print(resp)
#结果为
系统出错,请稍后重试
这里我们估计是请求头中的校验中的东西没有加
/front/search/category
是接口
把接口添加到XHR/fetch Breakpoints 刷新页面是他处于bebug的模式
可以看到请求头需要检验的对象,把他加入到我们的请求头里面
import requests
import json
url="http://www.whggzy.com/front/search/category"
heard={
'Accept': "*/*",
'Content-Type': "application/json",
'X-Requested-With': "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
data={"utm":"sites_group_front.2ef5001f.0.0.f2bf05709d4611ed89de7773dd92516f","categoryCode":"GovernmentProcurement","pageSize":15,"pageNo":1}
resp=requests.post(url=url,headers=heard,data=json.dumps(data)).text
print(resp
注意:content-type=application/json
需要导入json,利用json.dumps()把他转化为json模式