pyppeteer离线环境配置
windows下的安装和配置
- 1、使用豆瓣源安装pyppeteer:
pip install -i https://pypi.douban.com/simple/ pyppeteer
- 2、添加环境变量,更改下载 chromium 的来源网站和执行路径:
pyppeteer第一次运行时,会自动下载chromium浏览器,时间可能会有些长。不过,我第一次运行时,直接报错:
[W:pyppeteer.chromium_downloader] start chromium download. Download may take a few minutes.
可以看到,下载功能是由pyppeteer.chromium_downloader模块完成的,那么我们进入这个模块查看源码。
在这个模块源码中,我们可以看到downloadURLs、chromiumExecutable等变量,很明显指的就是下载链接和chromium的可执行文件路径。我们重点关注一下可执行文件路径
chromiumExecutable: chromiumExecutable = { 'linux': DOWNLOADS_FOLDER / REVISION / 'chrome-linux' / 'chrome', 'mac': (DOWNLOADS_FOLDER / REVISION / 'chrome-mac' / 'Chromium.app' / 'Contents' / 'MacOS' / 'Chromium'), 'win32': DOWNLOADS_FOLDER / REVISION / 'chrome-win32' / 'chrome.exe', 'win64': DOWNLOADS_FOLDER / REVISION / 'chrome-win32' / 'chrome.exe', }
可见,无论在哪个平台下,chromiumExecutable都是由是4个部分组成,其中 DOWNLOADS_FOLDER 和 REVISION是定义好的变量:
DOWNLOADS_FOLDER = Path(__pyppeteer_home__) / 'local-chromium'
进一步查看可以发现:
__pyppeteer_home__ = os.environ.get('PYPPETEER_HOME', AppDirs('pyppeteer').user_data_dir) REVISION = os.environ.get('PYPPETEER_CHROMIUM_REVISION', __chromium_revision__)
所以,DOWNLOADS_FOLDER 和 REVISION都是读取对应环境变量设置好的值,如果没有设置,就使用默认值。我们来输出一下,看看默认值:
import pyppeteer.chromium_downloader print('默认版本是:{}'.format(pyppeteer.__chromium_revision__)) print('可执行文件默认路径:{}'.format(pyppeteer.chromium_downloader.chromiumExecutable.get('win64'))) print('win64平台下载链接为:{}'.format(pyppeteer.chromium_downloader.downloadURLs.get('win64')))
输出结果如下:
1
2
3
|
默认版本是:575458 可执行文件默认路径:C:\Users\Administrator\AppData\Local\pyppeteer\pyppeteer\local-chromium\575458\chrome-win32\chrome.exe win64平台下载链接为:https: //storage.googleapis.com/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip |
在使用上面代码的时候,你可以将win64换成你的平台就好了,有了上面的下载链接,这个时候就可以先开始下载着chromium浏览器(有些慢),然后继续往下看。
import os os.environ['PYPPETEER_HOME'] = 'D:\Program Files' import pyppeteer.chromium_downloader print('默认版本是:{}'.format(pyppeteer.__chromium_revision__)) print('可执行文件默认路径:{}'.format(pyppeteer.chromium_downloader.chromiumExecutable.get('win64'))) print('win64平台下载链接为:{}'.format(pyppeteer.chromium_downloader.downloadURLs.get('win64')))
输出如下:
1
2
3
|
默认版本是:575458 可执行文件默认路径:D:\Program Files\local-chromium\575458\chrome-win32\chrome.exe win64平台下载链接为:https: //storage.googleapis.com/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip |
特别提醒:上面设置环境变量的那一行,必须在导入pyppeteer这一行上面,否则设置无效。
上面这种方法你需要在每次使用pypeeteer之前通过这行代码设置一下,实在麻烦,所以,我还是更愿意直接在windows系统里面添加这个变量:
虽然我们把环境变量设置为D:\Program Files,但是层层文件夹之后,才到真正的可执行文件chrome.exe,下载好的压缩包解压后,所有文件都在名为chrome-win的文件夹中,所以,我们需要在D:\Program Files创建local-chromium\575458这两个文件夹(575458是上面的版本号,记得修改为你的版本号),然后将解压得到的chrome-win文件夹,重命名为chrome-win32,然后直接拷贝进去就好,整个安装过程就完成了。
变量名为PYPPETEER_DOWNLOAD_HOST
,对应值为http://npm.taobao.org/mirrors
; 下载链接选改
- 3、在
cmd
终端进入 python/ipython 环境,执行以下代码查看:
import pyppeteer
# chromium执行目录
pyppeteer.chromium_downloader.chromiumExecutable.get('win64')
# 下载chromium的url地址
pyppeteer.chromium_downloader.downloadURLs.get('win64')
配置成功的话,我这边返回的结果如下:
WindowsPath('D:/Program Files/pyppeteer/local-chromium/588429/chrome-win32/chrome.exe')
http://npm.taobao.org/mirrors/chromium-browser-snapshots/Win_x64/588429/chrome-win32.zip
至此环境配置是成功了,如果没生效注意重新打开cmd
窗口试试。