自动化爬虫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')