【发布时间】:2019-06-09 15:33:39
【问题描述】:
我想使用尽可能通用的 Node.js 实现一个基本的网络爬虫。我希望应用程序能够解析和返回来自任何 HTML 的文本,忽略任何标记/CSS/脚本,而不必提前知道要解析的 HTML 的结构。
我一直在考虑使用这个库:
https://github.com/cheeriojs/cheerio
使用下面的代码,我可以从 body 标记中提取文本,但这也包含 CSS 和 JavaScript。仅提取文本而不包含 CSS/JavaScript 的最佳方法是什么?
代码:
var request = require('request');
var cheerio = require('cheerio');
var URL = require('url-parse');
var pageToVisit = "http://www.arstechnica.com";
console.log("Visiting page " + pageToVisit);
request(pageToVisit, function (error, response, body) {
if (error) {
console.log("Error: " + error);
}
// Check status code (200 is HTTP OK)
console.log("Status code: " + response.statusCode);
if (response.statusCode === 200) {
// Parse the document body
var $ = cheerio.load(body);
console.log($('body').text());
}
});
【问题讨论】:
-
阅读库的文档我看到它提供了一个
.remove()方法。也许你可以用它来删除不需要的元素。 -
看起来像
$('script,style').remove()
标签: node.js web-scraping html-parsing cheerio