curl可以访问但是requests就返回安全验证

curl 可以访问但是requests 就返回安全验证(百度搜索页面)

!!方法具有时效性!!

curl转requests工具:https://curlconverter.com/

python版本:Python 3.10.5

curl 版本:curl 7.83.1 (Windows) libcurl/7.83.1 Schannel

在浏览器的开发者工具中,使用了cUrl(cmd),在windows上可以访问页面,但是使用工具转换为requests的访问,就会返回百度的图片安全验证。

解决方法: 将www.baidu.com 换为解析到的IP即可。(少量的请求,并且忽略认证verify=False

url='https://39.156.66.14/s?ie=utf-8&f=8&rsv_bp=1&rs...'
response = requests.get(url, headers=headers,allow_redirects=False,timeout=5,verify=False,)

或者使用http

url='http://www.baidu.com/s?....'

挣扎历程

无聊而又挣扎的历程

刚开始以为自己转换的工具有问题,就curl -v … 参数对照了一下。都是一样的。难道底层不一样,可是又不会呀。唉,接着百度这个百度的问题。

看到几个令人印象深刻的答案。

  1. 服务器屏蔽了python 库中的请求,但是没有屏蔽curl请求
  2. 也看到了有人再用深度学习去破解图片安全验证。(完全知识盲区,虽然很感兴趣)

然后后面都是漫无目的换各种出现的情况,各种关键词,各种可能的原因 去搜。结果都是石沉大海。

很久很久的疲惫时间感过去了,也没有一点思绪。就去微博上,吐槽这个问题好难。 结果,结果来了大佬。说ua不一样。我一想,参数都一样,ua都指定了呀。怎么会不一样呢。不管了,先回一波疑问。然后自己再搞搞。

刚刚开始搞起来,发现自己就像是撞了墙。刚感觉结果要出来,欸!!突然发现,复制了带有用户登陆的那个cookie。

再来!! 以为刚要成功,结果就发现cookie中有klter(好像是这名字,有他也能正常访问)。不行 得换个浏览器。

ok这次应该都可以了吧!!欸欸欸!成功了,成功了!!

但真的是这样吗!当然不是啊!!忘记关掉重定向了!!返回值当然是200。唉,已经感觉不到累了。

此处得出结论,脑袋糊涂,干活就不顺。

第二天打算抓包看看吧。虽然说只听说过抓包,自己还没用过。下了Wireshark 不能解析命令行和requests发出的https包。然后又下了fidder ,然后一顿百度,一顿曲折的操作。

刚开始发现解析的ip不一样,就直接把域名换成了ip

两个一试,都可以。但是脑袋中还有疑问,为什么域名就不行呢。当两个解析到域名的IP都相同时,requests还是不行。

然后用fidder抓包 curl 指定了代理。也开启了系统的代理。这个时候神奇的事情出现了。

request 和curl 都可以了。

结果发现:

确实ua不一样 但是是在发起tunnel的时候

curl的

CONNECT www.baidu.com:443 HTTP/1.1
Host: www.baidu.com:443
User-Agent: curl/7.83.1
Connection: Keep-Alive

requests的:

CONNECT www.baidu.com:443 HTTP/1.0
Host: www.baidu.com:443

一看不一样还挺多的。。

然后 目前没有然后了,不会改呀,网上少啊,试了一个不行呀

试的这一个https://www.jianshu.com/p/691fd8408dc4

然后 抓包结果 没有变

然后睡了一觉~

一觉醒来,好了累了,就先用IP顶着吧。

【完】

简要总结

抓包查看了他们的数据,刚开始。这两解析的ip不一样,以为是ip的问题,就把www.baidu.com 换成了curl解析到的ip。结果可以!!一阵欢呼。

但是转念一想,用另一个ip是不是也可以。

是的IP都可以。
把域名化成解析到的ip都可以!!!


或者https换成http

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值