一、自定义启动浏览器
设置executablePath
参数,代码如下:
browser = await launch(executablePath='C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe', headless=False)
二、设置userdatadir参数
设置userdatadir参数的目的是使用我们日常使用的chrome浏览器的用户数据,比如网页cookie、登陆的账号密码等等。可以实现某些网站的免密登陆,减少工作量。但我发现国内论坛上对这一点的记录比较少,在这里做一个记录。主要分为一下几步:
- 首先我们找到日常使用的chrome浏览器的用户数据所在地
打开chrome浏览器,在地址栏输入chrome://version
,结果如图所示。然后找到个人资料路径这一栏,后面的路径即使数据所在地。
-
在我们的pyppeteer项目的根目录创建一个myuserdatadir文件夹,然后将上一步中找到的用户数据文件夹中的所有文件复制到myuserdatadir文件夹中,文件结构如图所示。在这里使用相对路径的原因是,如果直接传入我们上一步所找到的绝对路径,有时候
pyppeteer
会报编码错误,另一个原因是我们使用单独的userdata文件夹,可以避免开发过程中的数据污染,避免让我们的日常浏览网页行为受到影响。
-
设置userdatadir参数,有两种方式,代码如下。两种方式皆建议使用chrome浏览器,不然可能会出现兼容性问题。
# 第一种直接使用userDataDir参数设置
browser = await launch(executablePath='C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe',
headless=False,
userDataDir="./myUserDataDir")
# 第二种,使用args参数,传入数据进行设置
browser = await launch(executablePath='C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Applicationchrome.exe',
headless=False,
args=["--disable-infobars", "--user-data-dir=./myUserDataDir"])