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