如何使用node.js对一个异步加载数据的网站进行搜刮?

问题描述 投票:0回答:1

我正试图使用Axios来请求和Cheerio来解析数据来刮取一个网站。我遇到的问题是,我请求的网站在显示数据之前加载数据。这导致HTML返回 "Loading... "而不是实际的数据。有什么方法可以将Axios请求配置为等待数据加载完成,或者我应该使用不同的库来进行请求?

node.js asynchronous web-scraping axios cheerio
1个回答
2
投票

你需要检查正在进行的XHR调用,并对该URL进行请求,因为你想要的内容不是来自于 URL,但来自其他API调用。

但使用Javascript动态加载内容的最简单方法是使用 puppeteer.

 const puppeteer = require('puppeteer')
 const browser = await puppeteer.launch({ headless: true })
 const page = await browser.newPage()
 await page.goto('https://example.com')

 await page.waitForSelector(".someSelectorThatsLoadedWithJavascript")
 // get whatever value you want now.
© www.soinside.com 2019 - 2024. All rights reserved.