创建 Cookie 爬虫工具,使用 Node.js 或 Ruby 提取 Cookie 信息

问题描述 投票:0回答:1

我正在寻求开发一个简单的爬虫工具,可以使用 Node.js 或 Ruby 从网页中提取 cookie 信息。尽管我想分享一些代码,但我不确定用于创建爬虫的最佳库。该爬虫的主要目标是根据 URL 参数检索页面上存在的所有 cookie,其中可能包括通过 Google 跟踪代码管理器异步加载。

例如:

SITE_URL = "youtube.com"

预期输出应该是:

`>_嘎

_gid ...`

我愿意用 Node.js 或 Ruby 实现爬虫,但我稍微偏爱 Node.js。

任何人都可以提供有关创建此 cookie 爬虫的最佳库或方法的指导吗?

javascript node.js ruby web-crawler
1个回答
0
投票

要创建一个简单的爬虫工具,使用 Node.js 从网页中提取 cookie 信息,您可以利用 Puppeteer 库。 setTimeout 函数充当阻塞机制,允许有足够的时间加载所有 cookie,包括像“_ga”这样的第三方 cookie。

下面是使用 Puppeteer 的示例实现:

const puppeteer = require('puppeteer');

const DELAY = 20000; // setTimeout
const URL_SITE = 'https://www.youtube.com/'; // site to be accessed

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(URL_SITE);

    setTimeout(async () => {
        // Get cookies using page.cookies()
        const cookies = await page.cookies();

        // Alternatively, you can extract cookies using page.evaluate()
        const cookiesPorEvaluate = await page.evaluate(() => {
            return document.cookie.split(';');
        });

        console.log(cookies); // Output all cookies
        console.log(cookiesPorEvaluate); // Output cookies extracted using page.evaluate()

        await browser.close();
    }, DELAY);
})();

在运行代码之前,请确保使用 npm install puppeteer 在 Node.js 环境中安装了 Puppeteer。

此脚本将启动无头浏览器,导航到提供的 URL_SITE,并等待延迟时间,然后使用 page.cookies() 和 page.evaluate() 提取和显示 cookie。

请记住自定义 URL_SITE 变量以指向您要抓取 cookie 的特定网站。

© www.soinside.com 2019 - 2024. All rights reserved.