Ubuntu
在以特定網站為來源的無頭瀏覽器上執行 javascript
我正在使用 ubuntu 伺服器(僅限終端),並且我有一個必須從特定網站執行的 javascript(以避免跨域問題)。
如果我在正常瀏覽器中,基本上我會按照以下步驟操作:
- 打開瀏覽器
- 打開網站
- 打開控制台並執行 javascript 程式碼
那麼,我怎麼能在終端中做到這一點?
一個範例 realCode™,通過nodejs和puppeteer模組使用新鮮和維護的 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