python接口自动化35-r.html.render() 下载无反应问题解决

前言

使用requests-html库渲染html页面的时候,初次使用需下载 chromium 浏览器,但是这个地址是从国外下载的,所以慢的你怀疑人生,你懂得!
pyppeteer-install下载没反应,r.html.render() 下载无反应?看完这篇就能解决!
requests-html 是干什么用的呢?这个可以看之前这篇介绍https://www.cnblogs.com/yoyoketang/p/10663392.html

环境准备

先下载requests-html库

pip install requests-html==0.10.0 —index-url https://pypi.douban.com/simple

遇到问题

初次使用的时候,需先下载chromium 浏览器,下载方法有2种

第一种:使用命令行下载

>pyppeteer-install
[W:pyppeteer.chromium_downloader] start chromium download.
Download may take a few minutes.

如果一直出现 Download may take a few minutes.很长时间不动,或者跟蜗牛爬的一样慢。

第二种:使用r.html.render() 下载

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/')
r.html.render() # 首次使用,自动下载chromium

运行代码后,也跟上面一样出现 Download may take a few minutes. 很长时间不动,或者跟蜗牛爬的一样慢。

主要原因是下载地址是国外的,有梯子的小伙伴可以开梯子下载,没有的就无法下载了!

替换下载源

既然已经知道是下载地址的问题了,那么我们只需在源码里面找到对应的下载地址,替换国内的下载源即可。
打开pycharm,找到External Libraries> site-packages 下的pyppeteer包

修改 chromium_downloader.py 文件,找到如下内容修改downloadURLs = {
'linux': f'{BASE_URL}/Linux_x64/{REVISION}/chrome-linux.zip',
'mac': f'{BASE_URL}/Mac/{REVISION}/chrome-mac.zip',
'win32': f'{BASE_URL}/Win/{REVISION}/{windowsArchive}.zip',
'win64': f'{BASE_URL}/Win_X64/{REVISION}/{windowsArchive}.zip',
}

我的是windows 64位电脑,所以修改后为

downloadURLs = {
'linux': f'{BASE_URL}/Linux_x64/{REVISION}/chrome-linux.zip',
'mac': f'{BASE_URL}/Mac/{REVISION}/chrome-mac.zip',
# 'win32': f'{BASE_URL}/Win/{REVISION}/{windowsArchive}.zip',
# 'win64': f'{BASE_URL}/Win_X64/{REVISION}/{windowsArchive}.zip',
'win32': 'https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win/575458/chrome-win32.zip',
'win64': 'https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip',
}

下面是各系统的chromium压缩包下载地址

  • linux: https://npm.taobao.org/mirrors/chromium-browser-snapshots/Linux_x64/575458/chrome-linux.zip

  • mac: https://npm.taobao.org/mirrors/chromium-browser-snapshots/Mac/575458/chrome-mac.zip

  • win32: https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win/575458/chrome-win32.zip

  • win64: https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip

替换完成后,在命令行输入 pyppeteer-install即可下载

>pyppeteer-install
[W:pyppeteer.chromium_downloader] start chromium download.
Download may take a few minutes.
......
chromium download done.
[W:pyppeteer.chromium_downloader] chromium extracted to: C:\Users\dell\AppData\Local\pyppeteer\pyppeteer\local-chromium\588429

这个时候下载速度就非常快了。

下载本地安装

如果不想通过命令行下载,也可以自己下载安装包的方式安装,上面命令行下载完成后的安装地址是:C:\Users\用户名\AppData\Local\pyppeteer\ 目录
于是可以先下载安装包:https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win/575458/chrome-win32.zip,下载完成后放到如下目录

C:\Users\自己电脑用户名\AppData\Local\pyppeteer\pyppeteer\local-chromium\588429\ 解压 chrome-win32.zip 文件

这种本地安装方式也可以

2020年第五期《python接口自动化+测试开发》课程,10月11号开学(火热报名中!)
本期上课时间:10月11号-1月3号,每周六、周日晚上20:30-22:30

(0)

相关推荐

  • 为何中国没有自主浏览器内核?研发推广资金需上百亿美元

    上次的超能周末刊中,最轰动的一件事就是所谓的国产自主研发的红芯浏览器被曝抄袭谷歌浏览器,这件事爆出了国内缺少自主研发的浏览器内核.那么国内为什么研发不出浏览器内核呢?在很多人看来浏览器内核应该不是多有 ...

  • 爬虫神器 Pyppeteer 介绍及爬取某商城实战

    重磅干货,第一时间送达 作者:叶庭云,来自读者投稿 编辑:Lemon 出品:Python数据之道 提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支 ...

  • 超越selenium的爬虫神器Pyppeteer

    在写爬虫的时候,为了效率我们通常会选择解析网页api来获取数据,但是有时候解析方式比较困难,或者我们纯粹是为了快速实现爬虫,会使用浏览器自动化操作,说起这一点,肯定第一个想到的就是selenium,但 ...

  • python接口自动化1-发送get请求

    前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来后面的自动化都离不开它. 一.环境安装 1.用pip安装requests模块 >>p ...

  • python接口自动化2-发送post请求

    前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的.登录问题解决了,后面都简单了. 一.查看官方文档 1.学习一个新的模块,其实 ...

  • python接口自动化3-自动发帖(session)

    前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? 一.session简介 1.查看帮助文档,贴了一部分,后面省略了 >>im ...

  • python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  • python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...

  • python接口自动化6-重定向(Location)

    前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了. 一.重定向 1. ...

  • python接口自动化7-参数关联

    前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 一.删除草稿箱 1.我们前面讲过登录后保存草稿箱, ...

  • python接口自动化8-参数化

    前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了. 参数化的思维只需记住一点:不要写死! 一.登录函数 1. ...

  • python接口自动化9-https请求(SSL)

    前言 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [ ...