树莓派4B安装Pyppeteer

树莓派4B安装Pyppeteer(kali Linux)

首答:
之前用了一下Selenium,发现打开网页有点慢,然后发现了Pyppeteer。
首先对比了一下(用的Windows):
Selenium(headless + !JavaScript):

from selenium 
import webdriverimport 	
timestart = time.time()
url = "https://www.baidu.com"
option = webdriver.FirefoxOptions()   
option.add_argument('--headless')
option.set_preference('permissions.default.image',2)
option.set_preference('permissions.default.javascript',2)
browser = webdriver.Firefox(options=option)
browser.get(url)
source = browser.page_source
end=time.time()
print (end-start)

结果如下:
树莓派4B安装Pyppeteer_第1张图片
发现差不多都得10秒,有点慢
然后用了Pyppeteer:
Pyppeteer (headless):

import asynciofrom pyppeteer 
import launch
import timeasync 
def main():    
	start=time.time()    
	browser = await launch({'headless': True,'dumpio':True,'autoClose':False,'args': ['--no-sandbox', '--window-size=1366,850']})    		
	page = await browser.newPage()    
	await page.setViewport({'width':1366,'height':768})    
	await page.goto('https://www.baidu.com')   
	await browser.close()    
	end=time.time()    
	print(end-start)
asyncio.get_event_loop().run_until_complete(main())

结果如下:
树莓派4B安装Pyppeteer_第2张图片
才2秒!快了将近5倍呢 !!!

况且,chrome driver 和 geckodriver我在树莓派上倒腾了两天也没弄明白咋部署(各种报错)如果谁要是弄明白了麻烦告诉我一下吧,谢谢。

Pyppeteer超级好安装:
按照这个官网链接:https://miyakogi.github.io/pyppeteer/#

pip3 install pyppeteer

然后配置环境变量
(临时添加):

export PATH=$PATH:'/home/ubuntu/.local/bin'

得把我的ubuntu换成你的用户名!!!
(话说我的kali 为啥要叫Ubuntu?)
(永久添加):

nano /etc/profile

或者是/home目录下的那几个bashrc文件,加上就行

哦对,别忘了权限

chmod -R 770/111/.........

给个x就行
官网说:
Note: When you run pyppeteer first time, it downloads a recent version of Chromium (~100MB).
If you don’t prefer this behavior, run pyppeteer-install

提示:当你第一次运行pyppeteer时,它会下载一个最近的Chromium版本,如果你不想要这样的话(需要提前安装Chromium),就运行

pyppeteer-install

我试了一下,它自动安装的版本是x86-64的,在树莓派上运行会报错(arm64)
版本:
在这里插入图片描述
报错:树莓派4B安装Pyppeteer_第3张图片
OSError: [Errno 8] Exec format error: '/home/ubuntu/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome'
好在kali下有自带的Chromium
指定用这个Chromium就行
还是用官网的示例

import asyncio
from pyppeteer import launch
import time
async def main():
    start=time.time()
    browser = await launch(executablePath='/usr/bin/chromium')
    page = await browser.newPage()
    await page.goto('https://www.baidu.com')
    await page.screenshot({'path': 'example.png'})
    await browser.close()
    end=time.time()
    print (end-start)
asyncio.get_event_loop().run_until_complete(main())

唯一不一样的地方是,只要在第六行加上执行路径就行了,kali下一般为 /usr/bin/chromium
然后直接 python3 … .py 就行了

最后截图的时候发现问题:
树莓派4B安装Pyppeteer_第4张图片
这东西截图是歪的。。。

回到最上面测试速度的那个地方

browser = await launch({'headless': True,'dumpio':True,'autoClose':False,'args': ['--no-sandbox', '--window-size=1366,850']})      
page = await browser.newPage()    
await page.setViewport({'width':1366,'height':768})    

加个page.setViewport 就行了

这就正了

差不多了,首答,很开心!!!!

你可能感兴趣的:(ubuntu,python)