DrissionPage过5秒盾:反CloudFlare反爬

5秒盾实例

偶尔有用的解决方式:

curl_cffi可以实现一些简单的反5秒盾。

pip install curl_cffi
from curl_cffi import requests as cffi_requests
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
}
url = ""
res = cffi_requests.get(url, impersonate='chrome110', timeout=10)
print(res.status_code, res.cookies)

无效的网站会返回 403 <Cookies[]>。

DrissionPage反反爬

这里采用DrissionPage自动化来反反爬。

pip install DrissionPage

安装后,编写代码:

from DrissionPage import ChromiumPage
from DrissionPage import ChromiumOpt
### DrissionPage 爬虫自动化使用教程及案例 #### 1. DrissionPage 概述 DrissionPage 是一个基于 Python 的网页自动化工具,能够控制浏览器并收发数据包。该工具可以将浏览器自动化与请求发送相结合,在提供浏览器操作便利的同时保持高效的网络交互能力[^2]。 #### 2. SessionPage 和 ChromiumPage 功能对比 - **SessionPage**: 主要用于模拟 HTTP 请求,适合不需要渲染页面的任务。其性能较高,因为不涉及浏览器启动过程。 - **ChromiumPage**: 提供完整的浏览器环境支持 JavaScript 渲染等内容复杂的网站抓取工作。适用于需要处理动态加载内容的情况。 #### 3. 使用 SessionPage 取网易云音乐热歌榜实例 下面是一个简单的例子来展示如何利用 `SessionPage` 来获取网易云音乐热门歌曲榜单的信息: ```python from drissionpage import SessionPage, config config.set_driver_path(r'path_to_chromedriver') # 设置 chromedriver 路径 url = 'https://music.163.com/discover/toplist?id=3779629' session_page = SessionPage() response = session_page.get(url) html_content = response.text print(html_content[:500]) # 打印前500字符查看部分HTML源码 ``` 这段代码通过设置 ChromeDriver 的路径初始化了一个新的会话对象,并向指定 URL 发送 GET 请求以获得 HTML 响应体的内容[^1]。 #### 4. 进一步解析和提取所需信息 为了更深入地分析返回的数据,通常还需要借助 BeautifulSoup 或者 PyQuery 库来进行 DOM 解析,从而定位到具体的标签节点并抽取有用字段,比如歌曲名称、歌手名等。 ```python from bs4 import BeautifulSoup as soup parsed_html = soup(html_content, "lxml") song_list = parsed_html.find_all('div', class_='ttc') for song in song_list: title = song.a['title'] print(title) ``` 此段脚本展示了怎样运用 BeautifulSoup 对之前取得的 HTML 文档做进一步剖析,最终实现了对每首上榜曲目标题的有效读取。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值