Node.js (без головы Chrome Crawler) - Как динамически очищать данные на каждой странице ссылки для сканирования? - PullRequest
0 голосов
/ 26 февраля 2020

В настоящее время я работаю над динамическим c проектом веб-сканера для извлечения бизнес-информации с использованием мета-тегов и регулярных выражений для выполнения следующих действий:

  1. Просматривать все внутренние ссылки начальный URL
  2. Загрузите каждый html документ по каждой ссылке
  3. Проверьте каждый из загруженных html документов, если он содержит деловую информацию, используя метатеги

Ниже приведен мой код:

const HCCrawler = require('headless-chrome-crawler');
const puppeteer = require('puppeteer');

(async () => {

// declare array
const linksArray = [];

const crawler = await HCCrawler.launch({

evaluatePage: (() => ({
  // scrape the title
  title: $("meta[property='og:title']").attr("content"),
  // scrape the image
  image: $("meta[property='og:image']").attr("content"),
  // scrape the description
  description: $("meta[property='og:description']").attr("content")
})),

onSuccess: (async result => {
  // store the object
  var title = result.result.title;
  var image = result.result.image;
  var description = result.result.description;

  // store all the crawled links in array
  linksArray.push(result.links);

  // loop each link in array
  for (url of linksArray[0]) {
    // 1. to do: crawl each link
    // 2. to do: download each page
    // 3. to do: check if business information is in the page
      //using regex and meta tags
  }

  // print items
  console.log("Title: " + title);
  console.log("Image: " + image);
  console.log("Description: " + description);
}),

onError: (error => {
  console.log(error);
})
});
  await crawler.queue('https://www.dintaifung.com.sg/');
  await crawler.onIdle();
  await crawler.close();
})();

Я пытаюсь использовать puppeteer для загрузки документа html и извлечения деловой информации. Может ли кто-нибудь помочь мне с этим? Заранее спасибо.

...