网页链接 http://221.214.94.51:8081/icity/ipro/projectlist
需要在"项目名称"输入名称后查询
利用控制台获得以下链接:
http://221.214.94.51:8081/icity/api-v2/app.icity.ipro.IproCmd/getSPListByPage?s=d916191636204714395&t=5248_d11111_1636209135000
parameter s和t的值不能确定,好像是在http://221.214.94.51:8081/icity/ipro/projectlist/
python 爬虫post 时候query parameter确定不了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-showbo 2021-11-07 13:22关注
s签名参数在下面这个网址的源代码里面,同时访问这个网址还会生成一个ICITYSession Cookie。t参数主要第二个的计算,通过sig签名计算得到
http://221.214.94.51:8081/icity/ipro/projectlist
而且题主的接口搞错了,应该是
http://221.214.94.51:8081/icity/api-v2/app.icity.ipro.IproCmd/getProjectList?s=xxxx&t=xxxx
代码如下
import requests import json import time import random def getTParam(sig): chars = "0123456789abcdef" key="" keyIndex=-1 for i in range(6): c=sig[keyIndex+1] key+=c keyIndex=chars.find(c) if keyIndex<0 or keyIndex>=len(sig): keyIndex=i #主要是 key计算,第一个数字是随机生成的,第3个数字为时间戳 return str(random.randint(1000,10000))+"_"+key+"_"+str(int(time.time()) * 1000) headers={ 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36', 'Cookie':'' } referrurl="http://221.214.94.51:8081/icity/ipro/projectlist" res=requests.get(referrurl) cookies=requests.utils.dict_from_cookiejar(res.cookies) headers['Cookie']='ICITYSession='+cookies['ICITYSession'] sig=res.text starts='var __signature = "' startindex=sig.find(starts)+len(starts) endindex=sig.find('"',startindex) sig=sig[startindex:endindex]#得到签名 url="http://221.214.94.51:8081/icity/api-v2/app.icity.ipro.IproCmd/getProjectList?s="+sig+'&t='+getTParam(sig) headers['Referer']=referrurl headers['X-Requested-With']='XMLHttpRequest' headers['Content-Type']='application/json' #post发送的数据 payloadData={"projectcode":"", "projectname":"", "contractor":"", "projecttype":"", "page":1, "limit":10} req=requests.post(url,headers=headers, data=json.dumps(payloadData)) data=req.json() print(data)
有帮助麻烦点下【采纳该答案】,谢谢~~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 Revit2020下载问题
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大