五种方法教你快速绕过5s盾反爬

1、第一种方式使用cloudscraper绕过
import cloudscraper
# 创建一个Cloudscraper实例,设置延迟和模拟的浏览器环境
scraper = cloudscraper.create_scraper(delay=5, browser={
    'browser': 'chrome',
    'platform': 'linux',
    'mobile': False,
})
resp = scraper.get('https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1',
                   # proxies={'http': 'http://127.0.0.1:10809', 'https': 'http://127.0.0.1:10809'}
                   )
## 打印响应的文本和状态码
print(resp.text)
print(resp.status_code)
2、第二种方式使用curl_cffi绕过
from curl_cffi import requests as cffi_requests
res = cffi_requests.get('https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1', impersonate='chrome110', timeout=10)
print(res.text)
print(res.status_code)
3、第三种方式通过DrissionPage自动化库绕过
# 过五秒盾反爬
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)\Microsoft\Edge\Application\msedge.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()
4、使用开源项目CloudFlare5sBypass

CloudFlare5sBypass

相关文章链接:https://mp.weixin.qq.com/s/NZej8tbY6Hau6STH_xmYsQ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序烂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值