私はUbuntuサーバー(ターミナルのみ)を使用しており(ドメイン間の問題を避けるために)、特定のWebサイトで実行する必要があるJavaScriptがあります。
既定では、既存のブラウザを使用している場合は、次の手順に従います。
- ブラウザを開く
- ウェブサイトを開く
- コンソールを開き、JavaScriptコードを実行してください。
それでは、ターミナルではどうすればいいですか?
答え1
新鮮でメンテナンスされたrealCode™の例クロムメッキヘッドレス渡すノードjsそして人形劇基準寸法:
// 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