【发布时间】:2020-07-02 21:41:54
【问题描述】:
我想从一个共同基金网站上抓取某些数据,在那里我只能跟踪选择性基金而不是全部。
所以我尝试使用 puppeteer 来抓取网站生成的动态表。我设法拿到了桌子,但是当我尝试将其解析为 Cheerio 时,似乎什么也没发生
const scrapeImages = async (username) => {
console.log("test");
const browser = await puppeteer.launch({
args: ['--no-sandbox']
});
const page = await browser.newPage();
await page.goto('https://www.publicmutual.com.my/Our-Products/UT-Fund-Prices');
await page.waitFor(5000);
const data = await page.evaluate( () => {
const tds = Array.from(document.querySelectorAll('div.form-group:nth-child(4) > div:nth-child(1) > div:nth-child(1)'))
return tds.map(td => td.innerHTML)
});
await browser.close();
console.log(data);
let $ = cheerio.load(data);
$('table > tbody > tr > td').each((index, element) => {
console.log($(element).text());
});
};
scrapeImages("test");
最后我不知道我怎么能直接用 puppeteer 来做这件事,而不是直接到cheerio 进行刮,而且我也想只刮取选定的资金,例如,如果你在这里访问网络 https://www.publicmutual.com.my/Our-Products/UT-Fund-Prices
我只想从缩写中获得资金
- PAIF
- PAGF
- PCIF
而不是全部。不知道我怎么能只用 puppeteer 做到这一点?
【问题讨论】:
标签: node.js web-scraping puppeteer cheerio