如何使用Node.js中的请求获取内部HTML代码?

时间:2019-08-27 22:31:54

标签: javascript node.js request

我正在尝试抓取当前火车时刻表的网页。我正在使用“请求”获取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());
    } 
});

1 个答案:

答案 0 :(得分:0)

要抓取动态页面,您需要像PhantomJS这样的无头浏览器。

获取数据的另一种方法是检查站点是否发出XHR请求并加载数据。然后,您可以直接使用访问的JSON。

如果加载的HTML中已经存在数据,您还可以尝试通过其他方式(RegEx,搜索替换)将其提取。