cheerio(Node.js)的选择器在控制台中工作,但不在我的脚本中



我正在编写一个简单的脚本,从网站上抓取货币表。

到目前为止,这是我的脚本,我想做的是从这个网站上获得外汇汇率表:https://www.bangkokbank.com/en/Personal/Other-Services/View-Rates/Foreign-Exchange-Rates

到目前为止,这是我的代码。

const cheerio = require('cheerio');
const request = require('request');
request({
method: 'GET',
url: 'https://www.bangkokbank.com/en/Personal/Other-Services/View-Rates/Foreign-Exchange-Rates'
}, (err, res, body) => {
if (err) return console.error(err);
let $ = cheerio.load(body);
var x = [];
var hello = $("#exchange-rates > div.table-outer > table > tbody> tr > td");

console.log(hello);

$("#exchange-rates > div.table-outer > table > tbody> tr > td").each((i, elem) => {
x.push($(elem).text());
console.log($(elem).text());
});

});

当我跑"$("#汇率>div.table-outer>表>tbody>tr>td"(;在网页的控制台中(通过单击"检查"(,可以识别所有相关元素。但当我用JavaScript运行脚本时,它不会得到任何东西。

有人能提出建议吗?非常感谢。

静态网站中不存在给定的路径。该网站动态地呈现内容,即,一旦在浏览器上交付了网络内容,就会进行进一步的DOM操作来呈现数据。因此,静态网页只有"#exchange-rates > div.table-outer > table > tbody。一旦在浏览器上获取trtd标签,就会附加这些标签。你可能需要寻找任何其他替代解决方案来获得外汇汇率,比如使用任何现有的API。

最新更新