Ubuntu

在以特定網站為來源的無頭瀏覽器上執行 javascript

  • March 3, 2018

我正在使用 ubuntu 伺服器(僅限終端),並且我有一個必須從特定網站執行的 javascript(以避免跨域問題)。

如果我在正常瀏覽器中,基本上我會按照以下步驟操作:

  1. 打開瀏覽器
  2. 打開網站
  3. 打開控制台並執行 javascript 程式碼

那麼,我怎麼能在終端中做到這一點?

一個範例 realCode™,通過nodejspuppeteer模組使用新鮮和維護的 chrome-headless

// 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

引用自:https://unix.stackexchange.com/questions/427830