我正在使用 ubuntu 服务器(仅终端),并且我有一个必须从特定网站运行的 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