自动化爬虫DrissionPage

自动化爬虫DrissionPage

目录

1.使用自动化爬虫DrissionPage

2.操作浏览器并爬取数据保存到本地

3.实战

我们在讲之前, 说说DrissionPage和Selenium这两个自动化爬虫之间的对比。

Selenium自动话爬虫需要下载对应版本的浏览器的驱动并将驱动放置到项目文件夹里面去, 需要用代码Service(r’chromedriver.exe’)来指定驱动的路径, 而DrissionPage自动化爬虫不需要这些操作。

DrissionPage相对比Selenium的语法稍微简单些。

我还是更推荐大家之后去使用DrissionPage。但不代表Selenium没有存在的意义, 很多网站的自动化爬虫的方法, 也都在用Selenium。

一、使用自动化爬虫DrissionPage

我们在使用自动化DrissionPage爬虫之前, 需要安装第三方库。

pip install drissionpage

安装好以后均可使用。

导包:

from DrissionPage._configs.chromium_options import ChromiumOptions
from DrissionPage._pages.chromium_page import ChromiumPage

我们创建一个浏览器对象, 并打开网页

page = ChromiumPage()
page.get('https://www.mi.com/shop/category/list')

结果:

在这里插入图片描述

我们成功的打开了网页。

DrissionPage的基本操作

获取网页的源代码:

print(page.html)

解析数据, 获取标签对象:

浏览器对象.ele() #拿一个标签
浏览器对象.eles() #拿多个标签

根据标签名获取标签对象(tag:标签名):

print(page.ele('tag:div'))

返回结果:如果根据表达式能够成功获取到某一个标签,则返回标签对象,反之则获取None。

print(page.eles('tag:div'))

返回结果:如果根据表达式能够成功获取到标签,则返回列表,列表中装标签对象,反之则获取空列表。

同理, 还有id, class, name等属性, xpath之类的操作。

通过id属性获取标签对象 id=‘app’ #app:

print(page.ele('#app'))

通过class属性获取标签对象 class=“breadcrumbs” .breadcrumbs:

print(page.ele('.breadcrumbs'))

通过name属性获取标签对象 @属性名=属性值:

print(page.ele('@name=description')
### 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 文档做进一步剖析,最终实现了对每首上榜曲目标题的有效读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值