python爬虫神器Pyppeteer
前言
selenium想必大家都不陌生,作为一款知名的Web自动化测试框架,selenium支持多款主流浏览器,提供了功能丰富的API接口,经常被我们用作爬虫工具来使用。
Pyppeteer简介
Pyppeteer其实是Puppeteer的Python版本,下面简单介绍下Pyppeteer的两大特点,chromium浏览器和asyncio框架:
1).chromium
Chromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome而开启的计划,相当于Chrome的实验版,Chromium的稳定性不如Chrome但是功能更加丰富,而且更新速度很快,通常每隔数小时就有新的开发版本发布。
Pyppeteer的web自动化是基于chromium来实现的,由于chromium中某些特性的关系,Pyppeteer的安装配置非常简单,关于这一点稍后我们会详细介绍。
2).asyncio
asyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持,号称是Python最有野心的库。
Pyppeteer安装
Pyppeteer的安装只需要一条命令就可以完成安装。命令如下:
1 |
pip install pyppeteer |
安装chromium浏览器,命令如下:
1 |
pyppeteer-install |
会安装最新版的chromium浏览器到pyppeteer的默认位置。
如果没有运行安装chromium浏览器,第一次运行pyppeteer的时候也会自动安装chromium浏览器。
使用
安装完后就来试试效果。一起来看下面这段代码:
1 2 3 4 5 6 7 8 9 |
import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await browser.newPage() await page.goto('https://www.bing.com') await page.screenshot({'path': 'bing.png'}) await browser.close() asyncio.get_event_loop().run_until_complete(main()) |
在main函数中,先是建立一个浏览器对象,然后打开新的标签页,访问百度主页,对当前页面截图并保存为“bing.png”,最后关闭浏览器。pyppeteer是基于asyncio构建的,所以在使用的时候需要用到async/await结构。