使用Node.js或Ruby创建用于提取Cookie信息的Cookie Crawler工具

zazmityj  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(87)

我希望开发一个简单的爬虫工具,可以使用Node.js或Ruby从网页中提取cookie信息。虽然我想分享一些代码,但我不确定用于创建爬虫的最佳库。这个爬虫的主要目的是检索所有的cookie存在于一个页面上,基于一个URL参数,其中可能包括通过谷歌标签管理器异步加载。
例如:
第一个月
预期输出应为:
> _ga _gid ...
我愿意在Node.js或Ruby中实现爬虫,但我对Node.js有一点偏好。
有没有人能提供关于创建这个cookie爬虫的最佳库或方法的指导?

i34xakig

i34xakig1#

要创建一个简单的爬虫工具,使用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的特定网站。

相关问题