requests-html请求需要render渲染时,mac自动

2020-03-25  本文已影响0人  哆朵啦

在试着做页面爬虫的时候,使用到了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

上一篇下一篇

猜你喜欢

热点阅读