Python爬虫百度云加速验证码问题
Python爬虫百度云加速验证码问题
- 问题描述
- 解决思路
- 实现代码
- 最终结果
问题描述
第一篇博文:低手,刚学,求勿喷。
前段时间,使用爬虫访问一个磁力链接下载网站(target_url),收集电影下载链接。一段时间使用同一ip地址连续访问,链接网站会报错,response.status=403 forbidden,显示百度云加速机器人检测balabala。。。浏览器手动填写验证码后,浏览器可正常访问,但是爬虫还是无法爬取,估计是要带上通过检验的Header。各种网站上搜了一圈+自己试了几天,问题依旧在。。哎。。
看哪位大神遇到过类似的问题,麻烦指导一下,谢谢!
解决思路
初学者用笨拙的requests.get各种尝试
- 访问目标磁力下载链接网站
主要在response.body中抓取两个hidden参数s和EventID。我也不知道这两个参数干嘛用的。。就是最后一步提交验证码链接会添加到里面。 - 获取验证码图片和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值我这里看是不变的,不知道别人那里怎么样) - 人工识别验证码
testcode=input("验证码:”) - 合成最终验证链接,访问后获取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"))
最终结果
- 向最终验证链接发送请求以后,response.body为空(b’ ')
- 使用response.cookie向目标链接发送请求依然显示需要验证
问题依然没有解决 泪目!!!
求各位大神指导
Python爬虫百度云加速验证码问题相关推荐
- python爬虫百度云资源分享吧_python爬虫入门 实战(七)---爬取并闪存微信群里的百度云资源...
(声明:本篇文章以交流技术为目的,希望大家支持正版,支持院线~) 需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被 ...
- 尹成python爬虫百度云_Python爬虫实战:抓取并保存百度云资源
寻找并分析百度云的转存api 首先你得有一个百度云盘的账号,然后登录,用浏览器(这里用火狐浏览器做示范)打开一个分享链接.F12打开控制台进行抓包.手动进行转存操作:全选文件->保存到网盘-&g ...
- 清华尹成python爬虫百度云_爬虫:利用python完成百度贴吧数据采集
前言:本文主要是分享下利用python爬取百度指定贴吧的全部帖子以及帖子回复内容,主要是利用python的request库获取网页信息,通过正则等方式解析我们需要的数据并存储到数据库中,并且后续可以用 ...
- 百度云加速 ajax,使用百度云加速后网站打开速度慢、广告不显示的解决方法
最近发现自己的博客打开很慢,通过ie浏览器打开速度还可以,使用任何第三方浏览器打开都超级慢,以为是HTML代码元素导致,一番比对后没有发现不是HTML5代码问题,但是在头部发现一串javascript ...
- python代码示例百度云-python利用百度云接口实现车牌识别的示例
一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...
- 九十三、Python使用百度云接口API实现截图,文字识别和语音合成
@Author:Runsen @Date:2020/7/13 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...
- python利用百度云接口实现车牌识别
一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...
- 使用百度云加速防apache的ab测试
Apache带的有一个ab压力测试的: 具体的概念性的东西:咱不扯:有兴趣的自行搜索: 这里只简单介绍使用方法: windows示例:e:\wamp64\bin\apache\apache2.4.17 ...
- 千锋中级Python视频百度云
千锋中级Python视频百度云免费赠送给大家,希望大家在Python学习路上一帆风顺! 所属网站分类: 资源下载 > python视频教程 作者:外星人入侵 原文链接: http://www.p ...
最新文章
- python 桑基图 地理坐标_【转载】Python数据可视化-实现Sankey桑基图
- Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!
- 微服务架构中熔断器_基于 Golang 语言的微服务熔断器
- 点击返回到另一个界面
- Windows进程与线程学习笔记(四)—— 等待链表调度链表
- 修改linux系统iqn,linux iSCSI target配置全过程
- NYOJ 562 盒子游戏
- 二、Zabbix 服务端部署安装
- python内建时间模块 time和datetime
- java查询数组中元素的索引
- 大数据概论ppt_解读 | 货拉拉搬家大数据报告(30页PPT干货)
- window.opener方法的使用 刷新父页面
- android 传感器 应用,Android移动设备中传感器的应用
- Elasticsearch数据库下载
- 加密芯片——3DES算法特点与应用注意事项
- [BZOJ]4199: [Noi2015]品酒大会(后缀数组+笛卡尔树)
- pymongo使用经验
- 2021-04-25
- 使用VUE分分钟写一个验证码输入组件
- 201671010402 词频统计软件项目报告
热门文章
- centos GPU tensorflow pytorch 深度学习 环境搭建
- 慕课Java第三季学习及笔记整理
- Unity3D实践系列06,球体撞击物体游戏
- 前端开发如何配置一个新电脑 VScode
- java的强类型语言与JavaScript(js)的弱类型语言
- php八进制十六进制,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
- SpringMVC使用HandlerExceptionResolver实现全局异常处理器
- shell学习之awk
- Ubuntu上AMD显卡能够使用的stable diffusion webui部署方案流程
- pfx私有证书转cer公钥格式证书