最近在学习爬虫,练习爬取智联招聘网站时,发现列表页是可以正常爬取的,但是详情页不行,发现在F12的请求头里复制的cookies值随着每次刷新都是变化的,本来打算用发送登录请求,每次获取cookies值,但是发现网站只有短信验证码登录,没有账号密码登录,就不知道怎么做了,看了之前别人爬取的都是固定cookies是前两年智联招聘cookies还不是动态变化的原因吗?
是不是只能用selenium这类模拟登陆的方式了,求解答。
处理动态变化的 cookies 通常涉及以下几种方法:
requests
这样的库,你可以使用 Session
对象来自动处理 cookies。当你首次请求登录页面时,Session
对象会存储返回的 cookies。然后,你可以用这个 Session
对象进行后续请求,而不需要手动设置 cookies。模拟登录:
如果网站只有短信验证码登录,那么模拟登录会稍微复杂一些。但你可以尝试以下步骤:
对于模拟登录,你可以使用 requests
库结合如 BeautifulSoup
或 lxml
这样的 HTML 解析库来解析表单,并使用如 twilio
或 selenium
(虽然你提到了它,但通常用于更复杂的场景)来自动处理验证码。
requests
和 Session
)import requests
from bs4 import BeautifulSoup
# 创建一个 Session 对象
session = requests.Session()
# 1. 发送请求到登录页面(可能需要先获取验证码)
login_url = '智联招聘登录页面URL'
response = session.get(login_url)
# 2. 解析登录页面,获取需要填写的表单字段(此处仅为示例,实际字段可能不同)
soup = BeautifulSoup(response.text, 'html.parser')
# ... 这里填写你的解析代码 ...
# 3. 发送包含登录信息的 POST 请求
login_data = {
'phone': '你的手机号',
'captcha': '你的验证码',
# ... 其他表单字段 ...
}
login_response = session.post(login_url, data=login_data)
# 4. 检查登录是否成功,并使用 session 进行后续请求
if login_response.status_code == 200: # 或者其他表示登录成功的状态码
# 使用 session 发起其他请求,此时 cookies 会自动发送
detail_url = '智联招聘详情页URL'
detail_response = session.get(detail_url)
# ... 处理详情页响应 ...
else:
print('登录失败')
请注意,上述代码仅为示例,并不针对智联招聘的具体登录流程。你需要根据实际的网站结构和登录机制来调整代码。
问题内容: 我知道您不应该将显示逻辑放在控制器中,并且我正在努力使用正确的AngularJS方法来实现此目的。 我正在模态内展示表格。我正在使用Zurb Foundation的揭示模式。 标记: 控制器: 注意:$ scope.ui是我用来存储UI值的对象,在用户实际单击“添加小部件”之前,该值不应绑定到我的对象 $ scope.myobj是存储我的数据的位置。 基金会的职能提出了模式叠加。 由于
这上面的地图模型是用three.js搞的吗 看着挺不错的 前端开发该如何实现?
页面滚动到这里的时候,图片固定不动,滚动条可以继续滚动。 缤瑞COOL官网 非常感谢!!
这种验证码python有什么库能破解么?第一次见这种 希望读取到验证码
我想使它从“游戏26”类到“游戏39”类,如果用户经历了从“游戏17”类到“游戏18”类。但如果用户没有通过,要使从“Game26”类到“Game30”类。