【发布时间】:2026-01-22 21:20:16
【问题描述】:
我需要制作一个简单的网络scraper来实时获取有关雅典证券交易所的一些基本信息。我选择的武器是 Node.js,更具体地说是“cheerio”模块。
我想要获取的信息在网站中表示为某些元素中的文本。这些元素嵌套在另一个元素中。一个例子是这样的:
<span id="tickerGeneralIndex" class="style3red">
<span class="percentagedelta">
-0,50%
</span>
</span>
在这种情况下,我要提取的数据是“-0,50%”。
我写的代码是这样的:
var request = require('request'),
cheerio = require('cheerio');
request('http://www.euro2day.gr/AseRealTime.aspx', function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var span = $('span.percentagedelta').text();
console.log(span);
}
});
此代码不会产生所需的输出。运行时,它会在控制台中记录一个空行。
出于测试目的,我曾尝试像这样修改我的代码:
var request = require('request'),
cheerio = require('cheerio');
request('http://www.euro2day.gr/AseRealTime.aspx', function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var span = $('span.percentagedelta').attr('class');
console.log(span);
}
});
这样我可以在控制台中获得“percentagedelta”。这是正确的,因为我要求获取元素的类。当然这不是我想要的。我这样做只是为了确定是否正确加载了“跨度”变量。
我开始怀疑这与文本中的字符有关。是否有可能归咎于某些编码问题?如果是,我该如何解决?
【问题讨论】:
标签: node.js web-scraping cheerio