Я пытаюсь разработать веб-скребок с использованием Cheerio для анализа таблицы HTML и вывода результатов в файл CSV, к сожалению, код ничего не вернет. Мой код следующий:
var request = require("request");
var cheerio = require("cheerio");
var fs = require("fs");
var url = "https://stat.epa.gov.tw/";
request(url, function(err, response, html){
if (!err) {
var $ = cheerio.load(html);
var allitems = $('table.tableAQI').children().children();
var items = []
allitems.each(function(index){
var result = $('table.tableAQI').children().children().eq(index).find("td").text();
if (result ! = "") {
items.push(result);
}
});
fs.writeFile("output2.csv", JSON.stringify(items, null, 4), function(err){
if (err) {
console.info(err);
} else {
console.info("Data has been written");
}
});
console.info(items);
}
});
На веб-сайте есть 2 таблицы. Я пробовал один и тот же код для анализа другой таблицы ('table.aqicolor'), и она работала нормально, поэтому я не совсем уверен, что не так.
Я ценю вашу поддержку.
Я хочу добавить значения td таблиц в массив элементов, а затем сохранить этот массив в файле csv. Когда я запускаю код, массив пуст. Я попробовал тот же код для другой таблицы на сайте, и он возвращает значения, поэтому я предполагаю, что это как-то связано с таблицей.
Итак, проблема не в том, что ничего не возвращается, а в том, что файл не заполнен
Да, я думаю, вы правы, мое плохое.
Данных нет в этом ответе, это здесь



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


the code won't return anythingЧто вы пытались вернуть к чему? Если вы хотите вернуть что-то асинхронное, верните Promise.