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':'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'
}url_tg=r"【】"
rq=requests.get(url=url_tg)
s=re.findall("name=\"s\" value=\"(.*)\"",rq.content.decode("utf8"))[0]
id=re.findall("Event ID: <strong>(.*)</strong>",rq.content.decode("utf8"))[0]
print("s:"+s)
print("id_s:"+id)
url_pub=r"https://captcha.su.baidu.com/session_cb/?" \r"pub=377e4907e1a3b419708dbd00df9e8f79&callback=callback"
pub=re.findall(r"pub=([a-z0-9]*)",url_pub)[0]
print("pub:"+pub)
rq=requests.get(url=url_pub,headers=header)
dt=json.loads(rq.text.lstrip('callback(').rstrip(')'))
print("session:"+dt["sessionstr"])
url_img="https://captcha.su.baidu.com/image/?session=%s&pub=377e4907e1a3b419708dbd00df9e8f79" %dt['sessionstr']
rq=requests.get(url=url_img,headers=header)
f=open("./temppage.jpg","wb")
f.write(rq.content)
pic_path=os.getcwd()+r"\temppage.jpg"
print(pic_path)
# os.system(pic_path)
url_comeback= 'http://【】/cdn-cgi/l/chk_captcha?s=%s&id=%s&captcha_challenge_field=%s&manual_captcha_challenge_field=' %(s,id,dt["sessionstr"])
f=open("./templic.txt","w")
f.write(url_comeback)
print(url_comeback)
import requests
import urllib.request
from http import cookiejarurl_finaltest=open("./templic.txt","r").readline()
test_code=input("验证码:")
url_finaltest=test_code
header={'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'
}
cookiestr="__cfduid=d065c414b8038a7e37a08c19ec38dc5ba1561956739; UM_distinctid=16bd43d3ae5ef-0fddc885546556-43450521-1fa400-16bd43d3ae6622; pgv_pvi=1668221952; _ga=GA1.2.1107443465.1562633913; Hm_lvt_6121c137910457c550f533490d449957=1562635173,1562906808,1564105223; _gid=GA1.2.1468546746.1564386430; __atuvc=24%7C28%2C10%7C29%2C5%7C30%2C2%7C31; CNZZDATA1261857817=90924701-1562633067-%7C1564472807; CNZZDATA1277219225=1241614942-1562630884-%7C1564472424; Hm_lvt_af921870f8ea1d356f9d403ce4edfc92=1564103796,1564386429,1564454948,1564476300; Hm_lvt_f75b813e9c1ef4fb27eaa613c9f307b2=1564103797,1564386429,1564454948,1564476300"
cookie={}
for item in cookiestr.split(";"):cookie[item.split("=")[0]]=item.split("=")[1]
print(cookie)url_target=r"【】"
ft=requests.get(url=url_finaltest,headers=header,cookies=cookie)
rq1=requests.get(url=url_target,cookies=ft.cookie)
print(rq1.content.decode("utf8"))

最终结果

  1. 向最终验证链接发送请求以后,response.body为空(b’ ')
  2. 使用response.cookie向目标链接发送请求依然显示需要验证
    问题依然没有解决 泪目!!!
    求各位大神指导

Python爬虫百度云加速验证码问题相关推荐

  1. python爬虫百度云资源分享吧_python爬虫入门 实战(七)---爬取并闪存微信群里的百度云资源...

    (声明:本篇文章以交流技术为目的,希望大家支持正版,支持院线~) 需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被 ...

  2. 尹成python爬虫百度云_Python爬虫实战:抓取并保存百度云资源

    寻找并分析百度云的转存api 首先你得有一个百度云盘的账号,然后登录,用浏览器(这里用火狐浏览器做示范)打开一个分享链接.F12打开控制台进行抓包.手动进行转存操作:全选文件->保存到网盘-&g ...

  3. 清华尹成python爬虫百度云_爬虫:利用python完成百度贴吧数据采集

    前言:本文主要是分享下利用python爬取百度指定贴吧的全部帖子以及帖子回复内容,主要是利用python的request库获取网页信息,通过正则等方式解析我们需要的数据并存储到数据库中,并且后续可以用 ...

  4. 百度云加速 ajax,使用百度云加速后网站打开速度慢、广告不显示的解决方法

    最近发现自己的博客打开很慢,通过ie浏览器打开速度还可以,使用任何第三方浏览器打开都超级慢,以为是HTML代码元素导致,一番比对后没有发现不是HTML5代码问题,但是在头部发现一串javascript ...

  5. python代码示例百度云-python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  6. 九十三、Python使用百度云接口API实现截图,文字识别和语音合成

    @Author:Runsen @Date:2020/7/13 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  7. python利用百度云接口实现车牌识别

    一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...

  8. 使用百度云加速防apache的ab测试

    Apache带的有一个ab压力测试的: 具体的概念性的东西:咱不扯:有兴趣的自行搜索: 这里只简单介绍使用方法: windows示例:e:\wamp64\bin\apache\apache2.4.17 ...

  9. 千锋中级Python视频百度云

    千锋中级Python视频百度云免费赠送给大家,希望大家在Python学习路上一帆风顺! 所属网站分类: 资源下载 > python视频教程 作者:外星人入侵 原文链接: http://www.p ...

最新文章

  1. python 桑基图 地理坐标_【转载】Python数据可视化-实现Sankey桑基图
  2. Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!
  3. 微服务架构中熔断器_基于 Golang 语言的微服务熔断器
  4. 点击返回到另一个界面
  5. Windows进程与线程学习笔记(四)—— 等待链表调度链表
  6. 修改linux系统iqn,linux iSCSI target配置全过程
  7. NYOJ 562 盒子游戏
  8. 二、Zabbix 服务端部署安装
  9. python内建时间模块 time和datetime
  10. java查询数组中元素的索引
  11. 大数据概论ppt_解读 | 货拉拉搬家大数据报告(30页PPT干货)
  12. window.opener方法的使用 刷新父页面
  13. android 传感器 应用,Android移动设备中传感器的应用
  14. Elasticsearch数据库下载
  15. 加密芯片——3DES算法特点与应用注意事项
  16. [BZOJ]4199: [Noi2015]品酒大会(后缀数组+笛卡尔树)
  17. pymongo使用经验
  18. 2021-04-25
  19. 使用VUE分分钟写一个验证码输入组件
  20. 201671010402 词频统计软件项目报告

热门文章

  1. centos GPU tensorflow pytorch 深度学习 环境搭建
  2. 慕课Java第三季学习及笔记整理
  3. Unity3D实践系列06,球体撞击物体游戏
  4. 前端开发如何配置一个新电脑 VScode
  5. java的强类型语言与JavaScript(js)的弱类型语言
  6. php八进制十六进制,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
  7. SpringMVC使用HandlerExceptionResolver实现全局异常处理器
  8. shell学习之awk
  9. Ubuntu上AMD显卡能够使用的stable diffusion webui部署方案流程
  10. pfx私有证书转cer公钥格式证书