nodejs 爬虫 response.body vs 响应转换为 jquery?
nodejs crawler response.body vs response conversion to jquery?
我使用 crawler 我的 nodejs 项目中的内置 cheerio 爬虫如何。
我的爬虫从这样的函数开始(就像文档中的例子):
let c = new Crawler({
maxConnections: 10,
callback: (error, res, done) => {
if (error) { throw err; } else {
let $ = res.$;
let content_test1 = $("*").toString();
let content_test2 = res.body;
let file_test1 = fs.writeFile(path, content_test1, (err) => {
err ? console.log(err) : console.log("done");
});
let file_test2 = fs.writeFile(path, content_test2, (err) => {
err ? console.log(err) : console.log("done");
});
}
done();
}});
let browser = c.queue('https://someUrl.com');
问题是“content_test1”文件比使用“content_test2”作为数据创建的文件大 4 倍,并且大多数 html 似乎是重复的。那么我哪里错了?
问候。
查理
$("*")
selects 文档中的所有个元素。这包括嵌套的。这里
<div>Outer <div>Middle <div>Inner</div></div></div>
会select
<div>Outer <div>Middle <div>Inner</div></div></div>
<div>Middle <div>Inner</div></div>
<div>Inner</div>
我使用 crawler 我的 nodejs 项目中的内置 cheerio 爬虫如何。
我的爬虫从这样的函数开始(就像文档中的例子):
let c = new Crawler({
maxConnections: 10,
callback: (error, res, done) => {
if (error) { throw err; } else {
let $ = res.$;
let content_test1 = $("*").toString();
let content_test2 = res.body;
let file_test1 = fs.writeFile(path, content_test1, (err) => {
err ? console.log(err) : console.log("done");
});
let file_test2 = fs.writeFile(path, content_test2, (err) => {
err ? console.log(err) : console.log("done");
});
}
done();
}});
let browser = c.queue('https://someUrl.com');
问题是“content_test1”文件比使用“content_test2”作为数据创建的文件大 4 倍,并且大多数 html 似乎是重复的。那么我哪里错了?
问候。
查理
$("*")
selects 文档中的所有个元素。这包括嵌套的。这里
<div>Outer <div>Middle <div>Inner</div></div></div>
会select
<div>Outer <div>Middle <div>Inner</div></div></div>
<div>Middle <div>Inner</div></div>
<div>Inner</div>