requests-html请求需要render渲染时,mac自动
在试着做页面爬虫的时候,使用到了requests-html爬虫框架时,其中当页面返回的内容只有.html地址时,需要继续加载页面内容,就用到了.html.render()渲染。
第一次运行到该语句时,会自动下载,但是下来下去速度实在是有些慢,在查找问题和解决办法的时候浪费了一些时间,下面总结一下:
如果是在下载进度条始终不出现,或者进度龟速,最快速的方法就是我们手动下载chromium,并放到对应目录下。
1. 找到python安装路径下的pyppeteer路径
由于我的mac安装了anaconda,python用的就是anaconda下的环境,python3为常用的python环境,可以在终端通过which找到正确的对应路径。进入到python3路径下的/site-packages/pyppeteer
sh-3.2# which python
/Users/你的机器名/opt/anaconda3/bin/python
sh-3.2# which python3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
即/Library/Frameworks/Python.framework/Versions/3.7/bin/python3/site-packages/pyppeteer
2. 找到此路径下的chromium_downloader.py文件,并打开。在此文件中有下段代码
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',
}
从上面可以可得到mac下的chromium路径是:
DOWNLOADS_FOLDER / REVISION / 'chrome-mac' / 'Chromium.app'
3. 那么,DOWNLOADS_FOLDER 和REVISION究竟是什么?
往上面寻找,可以找到以下代码:
DOWNLOADS_FOLDER = Path(__pyppeteer_home__) / 'local-chromium'
REVISION = os.environ.get('PYPPETEER_CHROMIUM_REVISION', __chromium_revision__)
可以使用print函数打印出两个路径DOWNLOADS_FOLDER和REVISION
即找到一个存放路径、和一个chromium版本号
去淘宝镜像下载对应版本(我的是575458)的chromium.app
由两个路径拼接,DOWNLOADS_FOLDER / REVISION / 'chrome-mac' / 'Chromium.app' 得到chromium应存放的路径是:
/Library/Application Support/pyppeteer/local-chromium/575458/chrome-mac/
如果路径缺少后面的路径,就手动创建文件夹/575458/chrome-mac/
最后将下载好的chromium.app放入路径,再运行就可以了。
参考win解决办法:https://blog.csdn.net/muguangzhichen/article/details/100046884