win10快速安装playwright python

首先:注意本机的python版本必须大于3.7

Playwright requires Python 3.7+.

其次:根据github: microsoft/playwright-python的readme信息提示,就像国内众多博客里写到的,安装playwright仅需两行命令。
但是由于众所周知的国内网络的原因,第二步装浏览器的时候经常失败,而且无法跳过、无法选择不安装、无法选择安装源、无法断点续传。
经过一下午的摸索,我终于弄清楚如何快速完成第二步,不需要反复尝试,安装浏览器这一步能够一次通过。
下面是安装步骤的提速方法
第一步 pip install playwright(This installs Playwright.)

这一步在国内使用默认源安装比较慢,还不稳定。
可以使用阿里源,提高下载速度。
pip install playwright -i https://mirrors.aliyun.com/pypi/simple/

第二步 python -m playwright install(This installs browser binaries for Chromium, Firefox and WebKit.)

默认使用python -m playwright install 安装chromium、frefox、webkit。
这里命令不变,但是在安装之前我们要先做一些事情,来实现快速安装成功。
这个命令开始运行后,它的安装步骤是,首先读取playwright安装路径/driver/browsers.json,这个文件确定了第二步下载浏览器时应该下载哪些浏览器以及对应的版本,默认Chromium, Firefox and WebKit都会下载,然后开始执行下载程序。

正常情况下安装的日志信息
PS C:\Users\<user name>> python -m playwright install
Downloading chromium v833159 - 90.1 Mb [====================] 100% 0.0s
chromium v833159 downloaded to C:\Users\<user name>\AppData\Local\ms-playwright\chromium-833159
Downloading firefox v1221 - 75.4 Mb [====================] 100% 0.0s
firefox v1221 downloaded to C:\Users\<user name>\AppData\Local\ms-playwright\firefox-1221
Downloading webkit v1402 - 38.6 Mb [====================] 100% 0.0s
webkit v1402 downloaded to C:\Users\<user name>\AppData\Local\ms-playwright\webkit-1402
我遇到的一些报错信息,安装过程中卡住不动按ctrl-c退出的就不粘出来了
PS C:\Users\<user name>> python -m playwright install
Downloading chromium v833159 - 90.1 Mb [                    ] 0% 22910.3s (node:14800) UnhandledPromiseRejectionWarning: Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:205:27)
(node:14800) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

PS C:\Users\<user name>> python -m playwright install
Downloading firefox v1221 - 75.4 Mb [=                   ] 6% 23625.2s (node:11492) UnhandledPromiseRejectionWarning: Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:205:27)
(node:11492) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing ins

经过查询搜索与尝试,终于发现其实这一步可以先自行下载Chromium、Firefox、WebKit的离线包,然后按照规则解压到指定路径,再稍作配置,就可以完成这一安装步骤。

第一步:

获取你本机第一步安装playwright的路径
python -c 'import playwright, pathlib; print(pathlib.Path(playwright.__file__).parent)'```

第二步:
打开第一步获得的路径下driver/browsers.json,记录一下您所安装playwright这一版本,打算安装浏览器的对应版本号。

{
  "comment": "Do not edit this file, use utils/roll_browser.js",
  "browsers": [
    {
      "name": "chromium",
      "revision": "833159",
      "download": true
    },
    {
      "name": "firefox",
      "revision": "1221",
      "download": true
    },
    {
      "name": "webkit",
      "revision": "1402",
      "download": true
    }
  ]
}

第三步:
下载Chromium,Firefox,WebKit的免安装压缩包。
这里我给出我找到的下载源,版本号比我上面json文件中的更新,如果你有现成的,应该也能用。
chromium-win64.zip
firefox-win64.zip
webkit-win64.zip

第四步:
下载好后,分别解压缩,然后,将解压缩的文件夹复制到
c:\Users\<user name>\AppData\Local\ms-playwright\
路径下,注意修改<user name>为你的实际用户名。

为什么要复制到这里?
因为正常安装成功的话,playwright安装浏览器的实际路径就是这里。

例:
c:\Users\<user name>\AppData\Local\ms-playwright\chromium-815036\
c:\Users\<user name>\AppData\Local\ms-playwright\firefox-1188\
c:\Users\<user name>\AppData\Local\ms-playwright\webkit-1347\

第五步:
按照第二步记录的版本号,修改ms-playwright/里面三个浏览器目录的名称为“浏览器-版本号”。
例:将firefox-win64改成 firefox-1221
第六步:
添加一个文件名为INSTALLATION_COMPLETE的空文件,到上面三个浏览器的目录里面。
请注意这三个目录下的层级不太一样:
chromium-833159/下应该是一个文件夹chrome-win/,里面是程序文件,以及一个INSTALLATION_COMPLETE空文件;
firefox-1221/下应该是一个文件夹firefox/,里面是程序文件,以及一个INSTALLATION_COMPLETE空文件;
webkit-1402/下应该是程序文件,以及一个INSTALLATION_COMPLETE空文件。

 C:\Users\<user name>\AppData\Local\ms-playwright\chromium-833159 的目录

2021/01/10  20:22    <DIR>          .
2021/01/10  20:22    <DIR>          ..
2021/01/10  20:22    <DIR>          chrome-win
2021/01/10  21:06                 0 INSTALLATION_COMPLETE

确认好第六步中三个目录和各自的层级后,运行python -m playwright install执行安装。
“啪的一下就执行完了,很快啊!”
其实就是程序判定这三个浏览器已经安装完毕,不需要由程序来进行下载安装了。

这样手动下载、设置后,就等于跳过了playwright默认的自动下载解压步骤。

以上。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐