Javascript 使用无头chrome爬虫对文本进行格式化

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

下面的代码从页面上的多个元素中提取文本,但是文本需要格式化(添加空格等),以便我能够在其他地方使用它

我有一些JavaScript(在浏览器控制台中工作),它在元素上循环,将它们的文本添加到数组中,然后将其转换为字符串,这就是我想要的。这是可以在这里重用的代码吗?我不确定在哪里/是否可以添加它

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()),
 }),
 ...