先给出需要的body和url
url = 'https://job.10086.cn/job-app/job/searchJobs.do'
body = {
"serviceName": "searchJobs",
"header": {
"version": "1.0",
"timestamp": 1680059209452,
"digest": "ODI2ZTk0YmJjNWE2OGNmODVlNzNiMGNiNmFmYTU3OTg=;DV/f5N2rpTLfzC+IzBiyzjhqEBK6JvSfAY1/qnkczL88bwgPw/2KDDD2+oPOog/Qb4uqTwE/d2xUYUhYqbCYQJXyr01GGrm80OhPlKQtLuBttZfMZd1/3Wlkwc9aId87da4s2jl8rbn9FSSaH8jCAivqRXGzmRnPc+5BFoYYsvWzoIF3z1iWcasrqwmzhrd7gIS7ihWvqL7YIfeSx1EAEqf71qgvlRgOV9YD4+T9iJxXk1fz8ASP9TMkd0AbhNQbknXgBqPlC+tnxdLqSiM4vB620JAZih9FuUcPZOApXfAvOB5mG9eOt5xk434lEEd3ZtkzeuZ653vu57KWogX4Fw==",
"conversationId": "20230329110649452614678"
},
"data": {
"pageNo": "2",
"pageSize": 20,
"companyId": 23,
"type": 1,
"category": "",
"workYear": "",
"degree": "",
"workType": ""
}
}
第一种方式,使用requests库
import requests
r = requests.post(url,json=body)
print(r.text)
得到结果
点击查看代码/删减了部分信息
"{\"code\":\"0000\",\"data\":{\"total\":121,\"jobList\":[{\"higestSalary\":null,\"subCategory\":\"304\",\"address\":\"\",\"city\":\"衢州市",\"degree\":\"25\",\"description\":\"1、负责落实行业营销计划,开展行业集团客户营销活动;收集行业发展信息和客户行业信息化需求;\\n2、分析研究行业特征,提出行业解决方案的优化建议;掌握标准化产品的产品性能和技术特点,为客户提供标准化产品的咨询服务;\\n3、针对不同类型集团客户,协助设计符合行业特点的个性化解决方案,并组织实施;开展集团客户业务咨询、业务办理、投诉处理等工作,协调相关资源满足客户需求;\\n4、负责所辖集团的客户关系维系,及时发现客户异动,做好异动分析和挽留工作。\",\"type\":\"1\",\"companyShortName\":\"浙江公司\",\"isEmergency\":false,\"provin}"
这种方式没有使用scrapy,与scrapy分离开,需要手动设置sleep时间,但是作者对于headers的处理很巧妙,是自动处理的,所以不需要手动设置。这种方式适合scrapy获取不到信息的时候,测试自己的body信息是否有误
第二种方式,使用scrapy
yield JsonRequest(
url=url,
data=body,
callback=self.parse,
)
def parse(self, response, **kwargs):
result = json.loads(response.text)
print(result)