在 pccharm 安装 requests-html,目前已经装好了 requests-html
在第一次使用的时候,pyppeteer 还是 requests-html 会有个自动下载安装 chromium,
直接自动安装是不成功的,
在报错信息里面看到(因为太困,昨晚没有及时保存报错信息,这里贴不出来)
动手去看看
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\pyppeteer\chromium_downloader.py
看到:
DEFAULT_DOWNLOAD_HOST = 'https://storage.googleapis.com'
这个就有高墙,直接去不了,根据网上建议,给 chromium_downloader.py 里的 urllib3 加梯
我这么做的:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
}
proxy = urllib3.ProxyManager('http://192.168.89.31:7070', headers=headers)#自己的虫洞地址
# with urllib.PoolManager() as http:#这是原句
with urllib3.PoolManager() as proxy:#改成这个
# Get data from url.
# set preload_content=False means using stream later.
# data = http.request('GET', url, preload_content=False)#这是原句
data = proxy.request('GET', url, preload_content=False)#改成这个使用虫洞
然后又报了个 http ssl 的错误,再根据网上的建议,把
DEFAULT_DOWNLOAD_HOST = 'https://storage.googleapis.com'
改成普通 http:
DEFAULT_DOWNLOAD_HOST = 'http://storage.googleapis.com'
,然后下载进度条出来了,等了好久,似乎终于下载完了,chromium_downloader.py 就报了个错,大概说这个 rar/zip 文件是错误的,
瞬间就觉得心很累了,我没有更好的梯子,而且我刚才在公司试了一下,连进度条都不出来,一直卡在那里,看来是梯子质量不行也有关系
但是我直接拼接地址,用同一把梯子,用浏览器下载 https://storage.googleapis.com//chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip
是完全没问题的,在 urllib3 里使用代理就很慢很慢了。。。
有不折腾的办法继续么? 最后想法是成功使用上 requests-html...
1
BBCCBB 2019-07-26 15:38:09 +08:00
用你本地的 chrome.exe 路径试试,
browser 里有个参数 executablePath |
2
BBCCBB 2019-07-26 15:38:58 +08:00
或者将你下的 zip 包放到对应位置., 具体哪个位置不记得了..
|
3
pppguest3962 OP @BBCCBB 在使用 request-html 的时候,似乎也不需要也没有干预浏览器的位置吧?
如 ``` session = HTMLSession() r = session.get('https://www.baidu.com') r.html.render() print(r.html.html) ``` 简单获取目标的 html 代码,似乎干预不了 chrome.exe 的行为? |
4
wszgrcy 2019-07-26 15:44:29 +08:00 via Android
用 core,下国内镜像,按照 1 楼额来
|
5
pppguest3962 OP @BBCCBB 嗯嗯,我想也是的,但是我水平不够,看不出来下载的包应该怎么样拜访,才是被认为正确安装。。。^_^
|
6
pppguest3962 OP |
7
huayunbin 2019-07-26 16:33:33 +08:00
|
8
wszgrcy 2019-07-26 16:44:12 +08:00 via Android
@pppguest3962 npm 包里有 puppeteer 和 puppeteer-core,后者不带浏览器,需要自己手动下载,淘宝有镜像源,可以下载后指定路径
|
9
pppguest3962 OP @huayunbin 谢谢解答,不过我是在 win 的环境里,
试着套路硬来: 把 ``` C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\pyppeteer\chromium_downloader.py ``` 的内容改为: DEFAULT_DOWNLOAD_HOST = 'https://storage.googleapis.com.cnpmjs.org' 报错: urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='storage.googleapis.com.cnpmjs.org', port=443): Max retries exceeded with url: /chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),)) 把 https->http 报错也是一致的。。。 |
10
BBCCBB 2019-07-26 16:52:05 +08:00
这个百度能找到 pyppeteer 需要的浏览器包的位置的.
要么就挂个代理试试 |
11
dbow 2019-07-26 16:58:25 +08:00
在海外 vps 上下载, 然后把文件复制回来
|
12
qdzzyb 2019-07-26 18:53:23 +08:00
PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors
|
13
pppguest3962 OP 非常感谢楼上各位的热线解答,问题已经解决了,楼上各位的办法都是好主意~
顺便提一下解决的方法: 按 12 楼的方式解决最简便,只是要把 s 去掉,https->http 下载安装速度杠杠的。。。 |