【发布时间】:2020-12-18 04:12:30
【问题描述】:
我正在编写一个简单的脚本来从网站上抓取货币表。
到目前为止,这是我的脚本,我想做的是从这个网站获取外汇汇率表: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 中运行脚本时,它什么也没得到。
有人可以建议吗?谢谢!
【问题讨论】:
-
你需要一个包
request,是deprecatedrequest - npm吗? -
啊,是的!但我猜它应该仍然有效
-
即使您没有明确地将
listen响应对象error事件...if (err) return console.error(err);;如果您没有为end事件明确地listen并使用该结果,您应该如何consume您的响应?
标签: javascript node.js cheerio