图片中已经说明我的操作方式,请求头中数据相同,我觉得是能模拟浏览器那种请求再请求,结果我写出来变成了两次请求一样,就得不到想要的数据了
51job获取acw_tc__v2后的同步请求的问题,详细在图中
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 专家-皆知 2024-04-30 18:21关注
参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
根据您的描述,您在尝试模拟登录并访问51job的搜索页面时遇到了问题,特别是关于如何正确使用
acw_tc
和动态生成的acw_sc__v2
来保持会话状态。这里的关键在于理解51job网站的会话管理机制,并确保第二次请求时正确携带所有必要的cookie信息。从您提供的信息来看,您已经正确地进行了第一步,即获取了初始页面和动态生成的
arg1
,然后通过执行JavaScript代码得到了acw_sc__v2
。问题可能出在如何准确地将这些信息用于后续请求,以保持与服务器的会话一致。下面是一个可能的解决方案,我会尽量提供一个清晰的代码示例,确保您在发送第二个请求时能够正确携带所有必要的cookie,包括动态生成的
acw_sc__v2
。import requests import re import execjs # 获取当前时间戳 timestamp = str(int(time.time())) # 假设cookies和headers已经定义好 cookies = {...} headers = {...} params = {...} # 假设params已经定义好 # 第一步:获取初始页面和arg1 initial_response = requests.get('https://we.51job.com/api/iob/search-pc', params=params, cookies=cookies, headers=headers) acw_tc = initial_response.cookies['acw_tc'] arg1_match = re.findall(r"var arg1 = '(.*)';", initial_response.text) arg1 = arg1_match[0] if arg1_match else None # 确保获取到arg1 if not arg1: print("未能正确获取arg1") else: # 使用execjs编译并调用函数获取acw_sc__v2 with open('demo2.js', 'r', encoding='utf-8') as file: js_content = file.read() acw_sc__v2 = execjs.compile(js_content).call('get_arg3', arg1) # 更新cookies,添加acw_sc__v2 cookies.update({'acw_sc__v2': acw_sc__v2}) # 第二步:使用更新后的cookies发送请求 final_response = requests.get('https://we.51job.com/api/iob/search-pc', params=params, cookies=cookies, headers=headers) # 打印最终响应的内容 print(final_response.text)
关键点:
- 确保您的JavaScript代码(
demo2.js
)能够正确计算出acw_sc__v2
。 - 在第一次请求后,您应该检查响应是否成功,并且确实包含了您需要的动态参数。
- 在更新cookies时,直接将
acw_sc__v2
添加到cookies
字典中,然后在第二次请求时使用这个更新后的cookies
字典。
如果问题仍然存在,可能需要更深入地分析51job的会话管理机制,比如检查是否有其他必需的cookie或HTTP头没有被正确设置,或者是否存在会话过期、JavaScript加密逻辑改变等问题。在处理这类网站时,要留意它们可能会有反爬虫措施,频繁请求可能会导致IP被封禁。
解决 无用评论 打赏 举报 编辑记录 - 确保您的JavaScript代码(
悬赏问题
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题
- ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
- ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?