要想使用pyppeteer实现cookies登录,首先我们需要知道pypeteer中需要的cookies格式是怎样的。官方文档介绍是说要包含一个拥有以下字段的字典:
* ``name`` (str): **required** * ``value`` (str): **required** * ``url`` (str) * ``domain`` (str) * ``path`` (str) * ``expires`` (number): Unix time in seconds * ``httpOnly`` (bool) * ``secure`` (bool) * ``sameSite`` (str): ``'Strict'`` or ``'Lax'``
其实需要的就是一个字典列表,这个我们可以使用pyppeteer直接获取,使用pyppeteer打开一个网站,比如说这里打开我的博客,再使用page.cookies()方法获取到cookies,具体代码如下:
from pyppeteer import launch
import asyncio
async def main():
browser = await launch(headless=False,
args=['--disable-infobars', '--no-sandbox', '--start-maximized'], slowMo=2,
dumpio=True)
page = await browser.newPage()
await page.goto('http://www.shenhuwei.com/zb_system/login')
# 现在暂停程序,我们手动输入密码与账号登录,然后按回车键获取cookies
input()
cookies=await page.cookies()
asyncio.get_event_loop().run_until_complete(main())获取到cookies后,我们输出一下看看,发现就是一个字典列表。现在就可以直接使用了,使用方法有两种:
第一种代码如下:
for cookie in cookies: await page.setCookie(cookie)
第二种代码如下:
await page.setCookie(*cookies)
最后完成代码如下:
from pyppeteer import launch
import asyncio
async def main():
browser = await launch(headless=False,
args=['--disable-infobars', '--no-sandbox', '--start-maximized'], slowMo=2,
dumpio=True)
page = await browser.newPage()
await page.setCookie(*cookies)
await page.goto('http://www.shenhuwei.com/zb_system/login')
asyncio.get_event_loop().run_until_complete(main())






评论