提示!本文章仅供学习交流,严禁用于非法用途,文章如有不当可联系本人删除!
一、Cloudflare之5秒盾是什么
二、如何判断该网站有Cloudflare 5秒盾反爬
三、Cloudflare之5秒盾免费版怎么过
四、Cloudflare之5秒盾付费版怎么过
五、更多优质文章常见解决方案
上一篇:1、一个爬虫自动化数据采集的故事~
一、Cloudflare 5秒盾是什么
1、Cloudflare是一个流行的服务,用于保护网站免受DDoS攻击和其他安全威胁。然而,这种保护服务有时会给合法用户带来问题,例如出现难以解决的验证码人机验证,最典型和常见的,就是请求的时候会出现 Just a moment...
2、Cloudflare 是一种基于云技术的Web应用程序防火墙(WAF),旨在保护网站免受各种Web攻击,它能够在5秒内检测到并阻止恶意流量
3、https://www.cloudflare-cn.com/what-is-cloudflare/
4、更多优质文章/经验分享,欢迎留言评论区,目录4包含视频讲解
二、如何判断该网站有Cloudflare反爬
1、常见的特征1:我们通过requests请求后,响应状态码是403,请求的时候会出现 Just a moment...
import requests
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = "https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1"
res = requests.get(url, headers=headers, timeout=10)
print("============requests, res.status_code, res.cookies, res.text)
2、常见特征2:响应头里面的Server是cloudflare
3、常见特征3:请求头Cookie常常有__cf_bm之类的开头,__cfduid, __cf_clearance 等
三、Cloudflare之5秒盾免费版怎么过
1、【免费版5秒盾】在无痕模式下打开并没有跳出校验真人,而是直接是数据展示页面,但是requests请求会是403,免费版的5秒盾可以通过cloudscraper 库过;pip install cloudscraper
import cloudscraper
scraper = cloudscraper.create_scraper()
url = 'https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1'
res = scraper.get(url)
print("============scraper的方式", res.status_code, res.cookies, res.text)
2、【免费版5秒盾】在无痕模式下打开并没有跳出确认真人界面,但是requests请求会是403,cloudscraper的请求也是403,但是通过curl_cffi库可以通过,检查了tls指纹;pip install curl_cffi https://github.com/lwthiker/curl-impersonate 关于curl_cffi的和指纹的相关介绍推荐看这篇文章 https://zhuanlan.zhihu.com/p/601474166
from curl_cffi import requests as cffi_requests
res = cffi_requests.get("https://www.chinatimes.com/?chdtv", impersonate='chrome110', timeout=10)
print("============cffi_requests的方式", res.status_code, res.cookies, res.text)
四、Cloudflare之5秒盾付费版怎么过
1、【付费版5秒盾】首次无痕模式下打开https://faucet.evmos.dev/ , 如图会跳出确认您是真人,我们直接用requests请求会发现响应状态码是403, 且响应文本里面存在 Just a moment...
2、【付费版5秒盾】首次无痕模式下打开,确定您是真人:https://www.mediamarkt.de/de/product/_ecg-nm-2255-milk-frother-black-90790545.html
3、【付费版5秒盾】 通过drissionpage(dp)的方式过,如下视频可以看到windows和linux上面如何操作调试,可在本篇文章留言区交流学习~ ,注意IP/UA/指纹等
# 过五秒盾反爬
from DrissionPage import ChromiumPage, ChromiumOptions
import platform
from loguru import logger
if platform.system().lower() == 'windows':
co = ChromiumOptions().set_paths(browser_path=r"C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe")
value = '确认您是真人'
else:
co = ChromiumOptions().set_paths(browser_path=r"/opt/google/chrome/google-chrome")
value = 'Verify you are human'
co.headless(True) # 设置无头加载 无头模式是一种在浏览器没有界面的情况下运行的模式,它可以提高浏览器的性能和加载速度
co.incognito(True) # 无痕隐身模式打开的话,不会记住你的网站账号密码的
co.set_argument('--no-sandbox') # 禁用沙箱 禁用沙箱可以避免浏览器在加载页面时进行安全检查,从而提高加载速度 默认情况下,所有Chrome 用户都启用了隐私沙盒选项 https://zhuanlan.zhihu.com/p/475639754
co.set_argument("--disable-gpu") # 禁用GPU加速可以避免浏览器在加载页面时使用过多的计算资源,从而提高加载速度
co.set_user_agent(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36') # 设置ua
browser = ChromiumPage(co) # 创建对象
browser.set.window.max()
browser.get("https://cn.airbusan.com/content/common/customercenter/noticeList", retry=3, interval=2, timeout=15) # 访问网
logger.info(f"user_agent is {browser.user_agent}")
browser.wait(2)
for i in range(20):
if browser.ele(f'x://input[@value="{value}"]', timeout=3):
logger.warning(f"retry {i+1} times, Verify you are human click now")
browser.ele(f'x://input[@value="{value}"]').click()
browser.wait(2)
if not browser.cookies(as_dict=True).get('cf_clearance'):
logger.error(f"retry {i+1} times, browser_cookie is {browser.cookies(as_dict=True)}")
continue
else:
logger.success(f"retry {i+1} times, browser_cookie is {browser.cookies(as_dict=True)}")
break
# with open(r"./ccc.html", "w") as f:
# f.write(browser.html)
browser.wait(2)
browser.wait.ele_displayed('x://td[@class="subject"]/a', timeout=3)
for tr in browser.eles('x://div[@class="boardList mgt60"]//tr', timeout=3)[1:]:
tds = [td.text for td in tr.eles("x://td", timeout=3)]
detail_url = tr.ele('x://td[@class="subject"]/a').attr('href')
logger.info(f"list_page_company is {tds} , a_href is {detail_url}")
# 对整页截图并保存
# browser.get_screenshot(path=r'./headless_False.png', full_page=True)
browser.get_screenshot(path=r'./headless_True.png', full_page=True)
browser.quit()
五、更多优质文章常见解决方案
1、cloudscraper的方式
https://blog.csdn.net/lipachong/article/details/131221477
https://mp.weixin.qq.com/s/zwmatF3yTgSyS0gz8sinaA
https://mp.weixin.qq.com/s/d8yvO_WJm6oba6NUCiYp9w
https://www.jianshu.com/p/cc90e2b66db4
2、docker的方式
https://mp.weixin.qq.com/s/wa0sdimbB5QEZKquDQsotw
https://mp.weixin.qq.com/s/7ISGCjtYyYr8_Gu6wAhqkg
https://www.163.com/dy/article/HUM0G2U505561QYO.html
https://blog.csdn.net/gwb0516/article/details/132446314
3、自动化的方式
Drssionpage :https://drissionpage.cn/get_start/installation
Playwright:https://blog.csdn.net/qq_60611058/article/details/138190415
undetected_selenium :https://blog.csdn.net/lipachong/article/details/131221626
https://blog.csdn.net/weixin_58584029/article/details/128719446
4、tls指纹的方式
curl_cffi :
https://mp.weixin.qq.com/s/x5sHHONqsYq2NiLKSKMgKg
https://m.163.com/dy/article/I0C2IR0A05561QYO.html?spss=adap_pc
https://blog.csdn.net/u010263350/article/details/133166345
tls_client:
用Scrapy爬取5秒盾站点,结果万万没想到,速度可以这么快!
https://www.jianshu.com/p/686b9b1b7ca1
5、扣代码的方式
https://mp.weixin.qq.com/s/iN78-Ilg7cQ-Fimuy4xrzQ
https://blog.csdn.net/qq_48888764/article/details/124639460
https://blog.csdn.net/qq_39802740/article/details/101367856
https://mp.weixin.qq.com/s/efloBirboVfH2hK3cNoU5A
原文始发于微信公众号(逆向OneByOne):如何过cloudflare五秒盾反爬
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论