gpt4 book ai didi

javascript - 我可以在 javaScript 中使用从 Node.js 抓取的内容吗?

转载 作者:行者123 更新时间:2023-11-30 06:16:28 25 4
gpt4 key购买 nike

我是 javaScript 的新手,正在尝试使用 node.js 抓取网站。我可以检查控制台日志中的数据,但想使用另一个 javaScript 文件中的数据。我怎样才能获取数据?

问题是我从未使用过 node.js。我会 javaScript,所以我知道如何编写代码,但我不知道后端或服务器是如何工作的。

我尝试在我的本地主机上打开它,但 Node 方法(例如,require())不起作用。我发现这是因为 Node 在浏览器中不起作用。(看到了吗?对 js 很新)

我应该使用 bundler 还是什么?

我以为的步骤是,

  • 以某种方式将数据作为 json 发送
  • 以某种方式获取 json 数据并呈现

这是抓取代码文件。

const axios = require("axios");
const cheerio = require("cheerio");
const log = console.log;

const getHtml = async () => {
try {
return await axios.get(URL);
} catch (error) {
console.error(error);
}
};

getHtml()
.then(html => {
let ulList = [];
const $ = cheerio.load(html.data);
const $bodyList = $("div.info-timetable ul").children("li");


$bodyList.each(function(i, elem) {
ulList[i] = {
screen: $(this).find('a').attr('data-screenname'),
time: $(this).find('a').attr('data-playstarttime')
};
});

const data = ulList.filter(n => n.time);
return data;
})
.then(res => log(res));

您能否解释一下我应该采取哪些步骤?

此外,如果我能理解为什么需要这些步骤,那就太好了。

非常感谢!

最佳答案

您可以尝试将数据写入 JSON 文件并继续,这是一种方式,然后您可以将数据用作任何 js 文件中的对象

const appendFile = (file, contents) =>
new Promise((resolve, reject) => {
fs.appendFile(
file,
contents,
'utf8',
err => (err ? reject(err) : resolve()),
);
});

getHtml()
.then(html => {
let ulList = [];
const $ = cheerio.load(html.data);
const $bodyList = $("div.info-timetable ul").children("li");


$bodyList.each(function(i, elem) {
ulList[i] = {
screen: $(this).find('a').attr('data-screenname'),
time: $(this).find('a').attr('data-playstarttime')
};
});

const data = ulList.filter(n => n.time);
return data;
})
.then(res => {
return appendFile('./data.json',res.toString())
}))
.then(done => {log('updated data json')});

关于javascript - 我可以在 javaScript 中使用从 Node.js 抓取的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55823469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com