使用Cookie进行网络抓取进行身份验证?

时间:2020-06-09 01:38:09

标签: javascript authentication cookies web-scraping puppeteer

我构建了一个使用Puppeteer从LinkedIn抓取数据的应用程序。我使用电子邮件和密码登录,但想传递cookie进行身份验证。这是我目前使用的:

const puppeteer = require("puppeteer");

(async () => {
    try {
        const browser = await puppeteer.launch({ headless: true });
        const page = await browser.newPage();
        await page.goto("https://www.linkedin.com/login");

        await page.waitForSelector(loginBtn);
        await page.type("#username", username);
        await page.type("#password", password);
        await page.click(loginBtn, { delay: 30 });

        await browser.close();
    } catch (error) {
        console.log(`Our error = ${error}`);
    }
})();

我见过像Phantombuster这样的网站,它们使用“ li_at” cookie进行身份验证。 https://i.imgur.com/PI8fzao.png

如何使用Cookie进行身份验证?

1 个答案:

答案 0 :(得分:1)

免责声明:我在Phantombuster工作;)

由于登录成功后会在浏览器中设置一个cookie,因此您可以用直接结果替换该步骤:

await page.setCookie({ name: "li_at", value: "[cookie here]", domain: "www.linkedin.com" })

然后,您应该可以goto进入任何网站页面,就好像您已通过登录表单进行了身份验证一样。