[自动化测试]树莓派4B安装pyppeteer

新买了一台树莓派4B,想运行爬虫脚本。但是安装系统后,安装selenium始终无法成功。树莓派4B是arm架构,现在chrome浏览版本的webdriver不支持。根据网上教程,安装firefox,尝试了多次安装arm下的webdriver仍然没有成功。无奈只能采用pyppeteer,所以记录一下。

以下过程均是在树莓派4B的Raspberry Pi系统下实现的

1.采用pip install pyppeteer

2.(错误尝试,不用执行)终端输入pyppeteer-install安装Chromium。但是发现由于某些原因,无法下载,只能手动下载。Chromium下载地址:CNPM Binaries Mirror (npmmirror.com)。

下载版本需先运行pyppeteer中的chromium_downloader.py文件中的chromium_executable() 函数

运行后我的地址是/home/用户名/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome,其中588429及需要的版本

3、下载安装后运行程序,发现仍然无法运行。发现是由于pyppeteer-install下载的Chromium是64位的,但是树莓派4B是32位的,不符合。但是由于Raspberry pi系统中自带Chromium浏览器,我发现只需要在程序中指定Chromium浏览器位置即可,即browser = await launch(executablePath='/usr/bin/chromium-browser'),'/usr/bin/chromium-browser'是在Raspberry pi系统中的Chromium浏览器位置

测试程序如下:

#! /usr/bin/env python3
import asyncio
from pyppeteer import launch
from pyquery import PyQuery as pq
 
async def main():
    browser = await launch(executablePath='/usr/bin/chromium-browser')
    page = await browser.newPage()
    await page.goto('http://quotes.toscrape.com/js/')
    await page.screenshot(path='example.png')
    await page.pdf(path='example.pdf')
    dimensions = await page.evaluate('''() => {
        return {
            width: document.documentElement.clientWidth,
            height: document.documentElement.clientHeight,
            deviceScaleFactor: window.devicePixelRatio,
        }
    }''')
 
    print(dimensions)
    # >>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}
    await browser.close()
 
asyncio.get_event_loop().run_until_complete(main())

你可能感兴趣的:(python,开发语言)