Javascript 使用无头chrome爬虫对文本进行格式化
下面的代码从页面上的多个元素中提取文本,但是文本需要格式化(添加空格等),以便我能够在其他地方使用它 我有一些JavaScript(在浏览器控制台中工作),它在元素上循环,将它们的文本添加到数组中,然后将其转换为字符串,这就是我想要的。这是可以在这里重用的代码吗?我不确定在哪里/是否可以添加它Javascript 使用无头chrome爬虫对文本进行格式化,javascript,node.js,web-crawler,puppeteer,Javascript,Node.js,Web Crawler,Puppeteer,下面的代码从页面上的多个元素中提取文本,但是文本需要格式化(添加空格等),以便我能够在其他地方使用它 我有一些JavaScript(在浏览器控制台中工作),它在元素上循环,将它们的文本添加到数组中,然后将其转换为字符串,这就是我想要的。这是可以在这里重用的代码吗?我不确定在哪里/是否可以添加它 const HCCrawler = require("headless-chrome-crawler"); const CSVExporter = require("head
const HCCrawler = require("headless-chrome-crawler");
const CSVExporter = require("headless-chrome-crawler/exporter/csv");
const FILE = "result.csv";
const exporter = new CSVExporter({
file: FILE,
fields: ["response.url", "response.status", "result.text"],
});
(async () => {
const crawler = await HCCrawler.launch({
maxDepth: 9999,
exporter,
allowedDomains: ["example.com"],
// Function to be evaluated in browsers
evaluatePage: () => ({
text: $("h1, h2, p").text(),
}),
// Function to be called with evaluated results from browsers
onSuccess: (result) => {
console.log(result.result.h1);
},
});
// Queue a request
await crawler.queue("https://example.com");
await crawler.onIdle(); // Resolved when no queue is left
await crawler.close(); // Close the crawler
})();
是的,我认为您可以在
evaluatePage
回调中添加一个应用代码的后期爬网步骤:
function cleanCrawledText(text) {
// clean text here and return it
}
...
evaluatePage: () => ({
text: cleanCrawledText($("h1, h2, p").text()),
}),
...