介绍
代码
import requests
cookies = {
'lastCity': '101240500',
'Hm_lvt_194df3105ad7148dcf2b98a91b5e727a': '1705373817',
'wd_guid': '34d47b55-f236-40df-8947-bcc111ae5044',
'historyState': 'state',
'_bl_uid': 'k8lULrynf82rX0jpmj40wzO90RkC',
'__zp_seo_uuid__': 'adfa4c56-6855-4de6-95c5-eb55269bf43c',
'__g': '-',
'__l': 'r=https%3A%2F%2Fcn.bing.com%2F&l=%2Fwww.zhipin.com%2Fchengshi%2Fc101240500%2F&s=1&g=&s=3&friend_source=0',
'Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a': '1705374089',
'__zp_stoken__': 'a44cfw5IrHxVLbBMWZgl9bWR3XcK4w4HDgMKMwr9gWcOCwrJiw4B%2BX19cf8OFwrvCpmrCq8OHwrl3wqrCu1fCssK2UMKUw47CqMKvwrNcwrbCr8KuxK3EhMOoxbPEgcOEw4%2FCo00oHh4QHRAcHBIbEgkJEB0QGxsRHBEeHhAdEEwzxI3ChsKrTk1EQDtISFYSV2dmXWVbEWxeUU1LCWMbYkspTUBNT8K5TcOLbcK5T8OCYMODT8OMbUBFT0%2FDgMOlMjIkEcONJRvDj8KcHCobw4%2FDhhzDnVrCmsOQwr%2FDgBAzT07DjcWAOkAiQ05ORk1AR05AMkBvw59kwpnDkMKww47CgD1NLkZATUdMTkBNOU44PE04RDBAQD06HRYeHxc9Q8OMd8OPw65ATQ%3D%3D',
'__c': '1705373817',
'__a': '37100070.1705373817..1705373817.8.1.8.8',
}
headers = {
'authority': 'www.zhipin.com',
'accept': 'application/json, text/plain, */*',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
# 'cookie': 'lastCity=101240500; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1705373817; wd_guid=34d47b55-f236-40df-8947-bcc111ae5044; historyState=state; _bl_uid=k8lULrynf82rX0jpmj40wzO90RkC; __zp_seo_uuid__=adfa4c56-6855-4de6-95c5-eb55269bf43c; __g=-; __l=r=https%3A%2F%2Fcn.bing.com%2F&l=%2Fwww.zhipin.com%2Fchengshi%2Fc101240500%2F&s=1&g=&s=3&friend_source=0; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1705374089; __zp_stoken__=a44cfw5IrHxVLbBMWZgl9bWR3XcK4w4HDgMKMwr9gWcOCwrJiw4B%2BX19cf8OFwrvCpmrCq8OHwrl3wqrCu1fCssK2UMKUw47CqMKvwrNcwrbCr8KuxK3EhMOoxbPEgcOEw4%2FCo00oHh4QHRAcHBIbEgkJEB0QGxsRHBEeHhAdEEwzxI3ChsKrTk1EQDtISFYSV2dmXWVbEWxeUU1LCWMbYkspTUBNT8K5TcOLbcK5T8OCYMODT8OMbUBFT0%2FDgMOlMjIkEcONJRvDj8KcHCobw4%2FDhhzDnVrCmsOQwr%2FDgBAzT07DjcWAOkAiQ05ORk1AR05AMkBvw59kwpnDkMKww47CgD1NLkZATUdMTkBNOU44PE04RDBAQD06HRYeHxc9Q8OMd8OPw65ATQ%3D%3D; __c=1705373817; __a=37100070.1705373817..1705373817.8.1.8.8',
'referer': 'https://www.zhipin.com/web/geek/job?query=%E7%8E%AF%E5%A2%83%E5%B7%A5%E7%A8%8B&city=101240500',
'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
'x-requested-with': 'XMLHttpRequest',
}
params = {
'scene': '1',
'query': '环境工程',
'city': '101240500',
'experience': '',
'payType': '',
'partTime': '',
'degree': '',
'industry': '',
'scale': '',
'stage': '',
'position': '',
'jobType': '',
'salary': '',
'multiBusinessDistrict': '',
'multiSubway': '',
'page': '2',
'pageSize': '30',
}
response = requests.get('https://www.zhipin.com/wapi/zpgeek/search/joblist.json', params=params, cookies=cookies, headers=headers)
print(response.text)
在多次请求后{"code":37,"message":"您的访问行为异常.","zpData":{"name":"35c24024","seed":"LRdHhqxf/rOJlmIU9AZA6aO4OZMygdFk6axq1m6zjUw=","ts":1705376463720}}
原因是因为cookie是有时效性的,
解决
构建生成cookie代码的python代码,实时生成cookie
对cookie进行时效性缓存,那么是哪个请求呢?可以看到有个token的这个请求,作为一个标志性的,来记录是否有没有过期
全局搜索这个的请求
然后就是构建
n这段生成,
逐个分析
n = (new a).z(e, parseInt(t) + 60 * (480 + (new Date).getTimezoneOffset()) * 1e3)
(new a).z构造函数的方法,e可以直接用,或者向上构建生成它代码
(new Date).getTimezoneOffset()) * 1e3时间相乘,
难点
就是(new a).z逆向,控制台打上。发现是个文件
再进行断点调试,这一步是调用s的,传入了e参数