CloudFlare5秒盾
Chatgpt 用的是5秒盾,CloudFlare的dns服务,真人验证后,才能继续访问页面和其他内容。见下图。
指纹和JA3
以前,我认为用python requests请求页面或者接口,返回的内容中包含 'Just moment……'字眼的,都是5秒盾。
直到大佬提示,还有假的,就是JA3浏览器指纹验证。
浏览器指纹是指通过收集一个设备或浏览器的特定信息,以识别其唯一身份的技术。这些信息可以包括:浏览器类型、版本、语言设置、操作系统类型、屏幕分辨率、字体、插件等。
JA3 指纹是一种用于识别 TLS/SSL 客户端的技术。它通过分析 TLS/SSL 客户端的特定特征来识别和跟踪客户端。这些特征包括客户端支持的加密算法、协议版本、扩展字段等。通过分析这些特征,网络安全专业人员可以识别和跟踪客户端,并识别可疑的恶意软件和攻击行为。JA3 指纹是一种高效且简单易用的识别 TLS/SSL 客户端的方法,广泛用于网络安全监测和威胁情报研究等领域。
某小说的爬取
以前我们分享过用docker flaresolverr的方法,跳过5秒盾,这种方法的确能跳过,有个缺点,就是慢,很慢!
也有用undetected_chromedriver的方式,也能跳过,但是也是慢,而且不经意间,磁盘就会被临时文件给塞满。
也有人分享过魔改JA3指纹的代码,但对于我这种小白来说,还是太难了。
偶然间得到一个python的库,curl_ccffi, 这一群老哥真的是厉害!
安装完之后,立刻就改了之前的代码,连用法都和request基本一致。
代码展示
def loda():
re =requests.get(url=url,impersonate="chrome101" )
print(re.text)loda()
结果展示
总结
我们是代码的搬运工,从左搬到右。但是认知局限了我们的搬运工作,还是要多读书,多聊天!