Python爬虫百度云加速验证码问题

博主在尝试爬取一磁力链接下载网站时遇到403禁止访问问题,原因是百度云加速的反爬机制。通过获取并提交验证码进行解决,包括获取sessionstr、人工识别验证码并构造验证链接,但最终未能成功,请求仍需验证码。寻求解决方案。
摘要由CSDN通过智能技术生成

Python爬虫百度云加速验证码问题

问题描述

第一篇博文:低手,刚学,求勿喷。
前段时间,使用爬虫访问一个磁力链接下载网站(target_url),收集电影下载链接。一段时间使用同一ip地址连续访问,链接网站会报错,response.status=403 forbidden,显示百度云加速机器人检测balabala。。。浏览器手动填写验证码后,浏览器可正常访问,但是爬虫还是无法爬取,估计是要带上通过检验的Header。各种网站上搜了一圈+自己试了几天,问题依旧在。。哎。。
看哪位大神遇到过类似的问题,麻烦指导一下,谢谢!

解决思路

初学者用笨拙的requests.get各种尝试

  1. 访问目标磁力下载链接网站
    主要在response.body中抓取两个hidden参数s和EventID。我也不知道这两个参数干嘛用的。。就是最后一步提交验证码链接会添加到里面。
  2. 获取验证码图片和sessionstr
    访问url:captcha.su.baidu.com/session_cb/pub=&callback=callback
    在response中获取sessionstr
    访问url:
    captcha.su.baidu.com/image/?session=&pub=377e4907e1a3b419708dbd00df9e8f79
    session=后填写上步获得sessionstr
    (pub值我这里看是不变的,不知道别人那里怎么样)
  3. 人工识别验证码
    testcode=input("验证码:”)
  4. 合成最终验证链接,访问后获取cookie
    访问url:http://【】/cdn-cgi/l/chk_captcha?s=&id=&captcha_challenge_field=&manual_captcha_challenge_field=
    其中:s等于第一步s,id等于第一步id,captcha_challenge_field等于第二步sessionstr,manual_captcha_challenge_field等于第三步人工识别验证码testcode

特别提示
上述request的时候需要添加浏览器里复制的特定header,其中,Referer填写要爬取的目标地址;合成最终验证链接里面【】也是目标爬取地址。

header={
‘Cookie’: ‘BAIDUID=961EB1A4B665388CE6EA47C30C2E0725:FG=1; BIDUPSID=961EB1A4B665388CE6EA47C30C2E0725; PSTM=1561956798; BDUSS=5mek5LNmlkQXRrUWp-REdadTJCS1lNdXptcFlqSVFyMnVmfnBVR1VDUUxSVUZkSVFBQUFBJCQAAAAAAAAAAAEAAADdZhgDemhvdWNobGN5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu4GV0LuBldan; MCITY=-131%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1423_21117_29522_29518_28518_29099_29568_28835_29220_26350’,
‘Host’:‘captcha.su.baidu.com’,
‘Referer’: ‘【】’,
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36’
}

实现代码

import requests
import re,os
header={
   
'Cookie': 'BAIDUID=961EB1A4B665388CE6EA47C30C2E0725:FG=1; BIDUPSID=961EB1A4B665388CE6EA47C30C2E0725; PSTM=1561956798; BDUSS=5mek5LNmlkQXRrUWp-REdadTJCS1lNdXptcFlqSVFyMnVmfnBVR1VDUUxSVUZkSVFBQUFBJCQAAAAAAAAAAAEAAADdZhgDemhvdWNobGN5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu4GV0LuBldan; MCITY=-131%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1423_21117_29522_29518_28518_29099_29568_28835_29220_26350',
'Host':
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值