我正在尝试抓取当前火车时刻表的网页。我正在使用“请求”获取html。但是,我要抓取的网页使用javascript填充了包含时间的表格。这意味着我想要获得的时间是在innerHTML中,据我所知(不是很远; P),请求返回了externalHTML。
所以我的问题是如何使用请求获取innerHTML代码?如果请求不能满足要求,我应该怎么用?
代码:
const request = require('request');
const cheerio = require('cheerio');
request('<The Webpage URL>',(error,response,html) =>
{
if(!error && response.statusCode == 200)
{
const $ = cheerio.load(html);
const stationName = $('#headerText').text().trim();
const Departures = $('.departure departure_noics departure_odd');
console.log($.text());
}
});
答案 0 :(得分:0)
要抓取动态页面,您需要像PhantomJS这样的无头浏览器。
获取数据的另一种方法是检查站点是否发出XHR请求并加载数据。然后,您可以直接使用访问的JSON。
如果加载的HTML中已经存在数据,您还可以尝试通过其他方式(RegEx,搜索替换)将其提取。