Puppeteer cookie 使用,免登录 CSDN 简书 掘金

想用 Puppeteer 登录 CSDN,如果自动再用 Puppeteer 登录一遍太麻烦了吧,所以想用 cookie 进入博客首页,这样就是已登录状态,结果试了好多办法都不行。到底是版本问题,还是怎么,这些文章到底怎么回事。现在提供一种可行的办法。

找出网页Cookie

一般我们会用F12查看 cookie

《Puppeteer cookie 使用,免登录 CSDN 简书 掘金》

如果少量,只需要其中一两个,这方法还算好。

如果还不满足,推荐使用这个插件 EditThisCookie ,一键获取所有 cookie ,同时支持复制所有 cookie 。

Puppeteer 访问网页使用 Cookie

先来看看我 cookie 报错的用法

前面使用网上别人的方法时一直会报错

(network.deletecookies) invalid parameters name string value expected

报错位置是这行代码 await page.setCookie(cookie)

这里 搜到,好像我传入 cookie 的参数形式有问题,应该是字符串,而我传的是数组,这样子传入不行

// const cookies = [{
//     'name': 'UserName',
//     'value': 'xxx'
// },{
//     'name': 'UserInfo',
//     'value': 'xxx'
// }];

正确方法如下:先看一组 cookie

const cookies = {'url': 'https://blog.csdn.net/', 'name': 'UserName', 'value': 'xxx'}
await page.setCookie(cookies)

这样子使用是没问题的,不会报错。但是我的 cookie 不仅仅一组。有多套,有个办法就是如上,再构造一个 cookie2出来,然后再设置 set 。

	const cookie1 = {'url': 'https://blog.csdn.net/', 'name': 'username1', 'value': 'xxx'}
	
	const cookie2 = {'url': 'https://blog.csdn.net/', 'name': 'username2', 'value': 'xxx'}
	
	await page.setCookie(cookie1)
    await page.setCookie(cookie2)

还有种办法就是用文件读取方式。用刚才的插件,将刚才的插件将 cookie 复制出来,然后创建文件整理成如下图,不一定所有都需要,只留下自己需要的,这里我拿我用的其中两个举例。

《Puppeteer cookie 使用,免登录 CSDN 简书 掘金》

将文件放到 module 下,然后用如下代码

const { cookie1, cookie2 , cookie3, cookie4, cookie5, cookie6, cookie7, cookie8, cookie9} = require('./cookie');
const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        args: ['--start-maximized'],
    });
    const page = await browser.newPage()
    await page.setCookie(cookie1)
    await page.setCookie(cookie2)
    await page.setCookie(cookie3)
    await page.setCookie(cookie4)
    await page.setCookie(cookie5)
    await page.setCookie(cookie6)
    await page.setCookie(cookie7)
    await page.setCookie(cookie8)
    await page.setCookie(cookie9)
    await page.setViewport({ width: 1920, height: 1080 });
    await page.goto('https://blog.csdn.net/')
    // await browser.close()
})();

现在再进入网站,好像已经处于登录状态了。

《Puppeteer cookie 使用,免登录 CSDN 简书 掘金》

好的,希望能帮到你。

怎么说呢?不管有用没,还是想加上这句
老郭种树原创,转载请加上Puppeteer cookie 使用,免登录 CSDN 简书 掘金
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注