解决request-html chromium下载失败原因

送分小仙女□ 提交于 2020-04-14 16:18:37

【推荐阅读】微服务还能火多久?>>>

我们在第一次使用requests-htmlrender函数的时候,当你第一次调用render()方法时,代码将会自动下载Chromium,并保存在你的根目录下(如:~/.pyppeteer/)。它只会下载这一次。唯一缺点就是chromium下载实在太慢了,下载过程容易出现超时现象导致失败。

第一种解决方案

修改Pyppeteer中的下载路径,因为默认的下载路径不能访问,原因你懂的。

这里介绍的是PyCharm中的使用方法:

  1. 找到pyppeteer 如果没有找到请安装 pip install pyppeteer
  2. 找到downloadURLs修改成对应系统和对应的版本(我这里是mac系统,选择的是最新版本。淘宝镜像chromium: https://npm.taobao.org/mirrors/chromium-browser-snapshots)
  3. 然后再次运行你的程序就可以了。

测试成功与否

from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://www.baidu.com/text/')
r.html.render()
print(r.html.html)

第二种方案

直接在shell中输入 pyppeteer-install

$ pyppeteer-install
[W:pyppeteer.chromium_downloader] start chromium download.
Download  may take a few minutes.
[W:pyppeteer.chromium_downloader] chromium download done.
[W:pyppeteer.chromium_downloader] chromium extracted to: C:\Users\xxxx\.pyppeteer\local-chromium\571375

安装完成即可

现在,你应该可以成功执行与req.html.render()相似的或者包含它的代码了:

from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://www.baidu.com/text/')
r.html.render()
print(r.html.html)

测试结果

关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!

关注我免费领取学习资料

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!