如何解决将网页抓取的结果发送到 textarea 标签 - 使用节点、axios 和cheerio
我创建了一个节点项目,安装了 axio 和cheerio 依赖项。我在文件“scrape.js”中制作了这个网页
const axios = require('axios');
const cheerio = require('cheerio');
var pageURLS =
["_URL_1_any_","_URL_2_any_","_URL_3_any_"];
var time = 0;
var interval = setInterval(function() {
if (time < pageURLS.length) {
axios(pageURLS[time])
.then(response => {
const html = response.data;
const $ = cheerio.load(html);
const imageTAG = $('.image_full');
const imageURL = $(imageTAG).find('[role="button"] > img').attr('src');
console.log(imageURL);
})
.catch(() => { console.log('<error>'); });
time++;
}
else {
clearInterval(interval);
}
},2000);
- 我使用包的“npm run dev”运行终端
- 并在控制台上显示图像
- 是一个 URL 数组,因为我从不同的 url 获取图像,所以我通过,进行抓取并给出一个 console.log
- 最后我得到一个图像列表或一个字符串,只是为了标记哪里出错
- 我做了一个 setInterval,因为执行堆栈导致结果全部乱序。
在前端,我有一个带有按钮和文本区域的 index.html。
如何单击按钮,返回此刮擦并将其粘贴到文本区域中?
我什至通过一个数组来填充文本区域,如下所示:
for(var i = (urls.length - 1) ; i>=1; i--){
document.getElementById("#textarea_id").innerHTML+= urls[i] + ' ';
}
document.getElementById("#textarea_id").innerHTML+= urls[0];
在 textarea 中创建列表。 ('for'就是这样颠倒顺序,不过没关系!)
我的问题是:当我运行“npm run dev”时,它会执行返回并已经开始进行刮擦(并在控制台上显示)。我想给出一个回应并显示在前面。
我很难理解这个交换前端(使用 URLS 请求“发布”)和后端(执行 axios/cheerio)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。