cheerio (Node.js) 的选择器在控制台中工作但不在我的脚本中
Selector for cheerio (Node.js) working in console but not in my script
我正在编写一个简单的脚本来从网站上抓取货币 table。
到目前为止,这是我的脚本,我想做的是从该网站获取 table 的外汇汇率: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());
});
});
当我在网页的控制台中 运行 "$("#exchange-rates > div.table-outer > table > tbody> tr > td")" (通过单击检查),它能够识别所有相关元素。但是当我 运行 JavaScript.
中的脚本时,它没有得到任何东西
有人可以指点一下吗?谢谢!
给定的路径在静态网站中不存在。本网站动态呈现内容,即,一旦在浏览器上传送 Web 内容,就会发生进一步的 DOM 操作以呈现数据。所以,静态网页只有"#exchange-rates > div.table-outer > table > tbody
。 tr
、td
标签在浏览器上获取后会被附加。您可能需要查看任何其他替代解决方案来获取外汇汇率,例如使用任何现有的 API。
我正在编写一个简单的脚本来从网站上抓取货币 table。
到目前为止,这是我的脚本,我想做的是从该网站获取 table 的外汇汇率: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());
});
});
当我在网页的控制台中 运行 "$("#exchange-rates > div.table-outer > table > tbody> tr > td")" (通过单击检查),它能够识别所有相关元素。但是当我 运行 JavaScript.
中的脚本时,它没有得到任何东西有人可以指点一下吗?谢谢!
给定的路径在静态网站中不存在。本网站动态呈现内容,即,一旦在浏览器上传送 Web 内容,就会发生进一步的 DOM 操作以呈现数据。所以,静态网页只有"#exchange-rates > div.table-outer > table > tbody
。 tr
、td
标签在浏览器上获取后会被附加。您可能需要查看任何其他替代解决方案来获取外汇汇率,例如使用任何现有的 API。