特定のウェブサイトをソースとしてヘッドレスブラウザでJavaScriptを実行する

特定のウェブサイトをソースとしてヘッドレスブラウザでJavaScriptを実行する

私はUbuntuサーバー(ターミナルのみ)を使用しており(ドメイン間の問題を避けるために)、特定のWebサイトで実行する必要があるJavaScriptがあります。

既定では、既存のブラウザを使用している場合は、次の手順に従います。

  1. ブラウザを開く
  2. ウェブサイトを開く
  3. コンソールを開き、JavaScriptコードを実行してください。

それでは、ターミナルではどうすればいいですか?

答え1

新鮮でメンテナンスされたrealCode™の例渡すそして基準寸法:

// https://codeburst.io/a-guide-to-automating-scraping-the-web-with-javascript-chrome-puppeteer-node-js-b18efb9e9921

const puppeteer = require('puppeteer');

let scrape = async () => {

    const browser = await puppeteer.launch({headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox']});
    const page = await browser.newPage();

    await page.goto('https://99bitcoins.com/bitcoin-rich-list-top100/#addresses');
    await page.waitFor(3000);

    const result = await page.evaluate(() => {
        var obj = {};
        var data = document.querySelectorAll('table.t99btc-rich-list tr');
        for (var i = 1; i<=100; i++) {
           obj[i] = {
               "hash": data[i].querySelector('td > a').innerText,
               "balance": data[i].querySelector('td:nth-of-type(3)').innerText
           }
        }

        return obj;

    });

    browser.close();
    return result;
};

scrape().then((value) => {
    console.log(JSON.stringify(value, null, 4));
});

使用法:

node top_xbt.js

関連情報