Рубрики
Без рубрики

Соскабливание веб -сайтов с помощью Nodejs

В настоящее время я работаю над побочным проектом, где я хочу поцарапать и хранить сообщения в блоге на определенном PA … Tagged с узлом, JavaScript, Scraping.

В настоящее время я работаю над побочным проектом, где я хочу очистить и хранить сообщения в блоге на определенных страницах. Для этого проекта я решил использовать Nodejs. В последнее время я больше работал с JavaScript, поэтому я решил, что это было бы забавно, связанным с узлом вместо Ruby, Python, что угодно.

Инструмент

Есть два действительно отличных инструмента для использования при скребке веб -сайтов с Nodejs: Axios и Cheerio

Используя эти два инструмента вместе, мы можем взять HTML веб -страницы, загрузить ее в Cheerio (подробнее об этом позже) и запросить элементы для необходимой нам информации.

Аксиос

Axios – это HTTP -клиент, основанный на перспективах как для браузера, так и для Nodejs. Это хорошо известный пакет, который используется в тоннах и тоннах проектов. Большинство проектов React и Ember, которые я работаю над использованием Axios, чтобы сделать вызовы API.

Мы можем использовать Axios, чтобы получить HTML веб -сайта:

  import axios from 'axios';

  await axios.get('https://www.realtor.com/news/real-estate-news/');

☝ даст нам HTML от URL, который мы просим.

Cheerio

Cheerio – самый удивительный пакет, о котором я никогда не слышал до сих пор. По сути, Cheerio дает вам запросы, подобные JQUERY, на структуру DOM HTML, которую вы загружаете! Это удивительно и позволяет вам делать такие вещи:

  const cheerio = require('cheerio')
  const $ = cheerio.load('

Hello world

') const titleText = $('h2.title').text();

Если вы вообще знакомы с JS Development, это должно быть очень знакомо вам.

Последний сценарий

С Axios и Cheerio, создание нашего скребка Nodejs мертвым. Мы называем URL с Axios и загружаем выходной HTML в Cheerio. Как только наш HTML загружен в Cheerio, мы можем запросить DOM для любой информации, которую мы хотим!

import axios from 'axios';
import cheerio from 'cheerio';

export async function scrapeRealtor() {
  const html = await axios.get('https://www.realtor.com/news/real-estate-news/');
  const $ = await cheerio.load(html.data);
  let data = [];

  $('.site-main article').each((i, elem) => {
    if (i <= 3) {
      data.push({
        image: $(elem).find('img.wp-post-image').attr('src'),
        title: $(elem).find('h2.entry-title').text(),
        excerpt: $(elem).find('p.hide_xxs').text().trim(),
        link: $(elem).find('h2.entry-title a').attr('href')
      })
    }
  });

  console.log(data);
}

Выход

Теперь у нас есть сбитая информация!

[ { image:
     'https://rdcnewsadvice.wpengine.com/wp-content/uploads/2019/08/iStock-172488314-832x468.jpg',
    title:
     'One-Third of Mortgage Borrowers Are Missing This Opportunity to Save $2,000',
    excerpt:
     'Consumer advocates have an important recommendation for first-time buyers to take advantage of an opportunity to save on housing costs.',
    link:
     'https://www.realtor.com/news/real-estate-news/one-third-of-mortgage-borrowers-are-missing-this-opportunity-to-save-2000/' },
  { image:
     'https://rdcnewsadvice.wpengine.com/wp-content/uploads/2019/08/iStock-165493611-832x468.jpg',
    title:
     'Trump Administration Reducing the Size of Loans People Can Get Through FHA Cash-Out Refinancing',
    excerpt:
     'Cash-out refinances have grown in popularity in recent years in tandem with ballooning home values across much of the country.',
    link:
     'https://www.realtor.com/news/real-estate-news/trump-administration-reducing-the-size-of-loans-people-can-get-through-fha-cash-out-refinancing/' },
  { image:
     'https://rdcnewsadvice.wpengine.com/wp-content/uploads/2019/08/GettyImages-450777069-832x468.jpg',
    title: 'Mortgage Rates Steady as Fed Weighs Further Cuts',
    excerpt:
     'Mortgage rates stayed steady a day after the Federal Reserve made its first interest-rate reduction in a decade, and as it considers more.',
    link:
     'https://www.realtor.com/news/real-estate-news/mortgage-rates-steady-as-fed-weighs-further-cuts/' },
  { image:
     'https://rdcnewsadvice.wpengine.com/wp-content/uploads/2019/07/GettyImages-474822391-832x468.jpg',
    title: 'Mortgage Rates Were Falling Before Fed Signaled Rate Cut',
    excerpt:
     'The Federal Reserve is prepared to cut interest rates this week for the first time since 2008, but the biggest source of debt for U.S. consumers—mortgages—has been getting cheaper since late last year.',
    link:
     'https://www.realtor.com/news/real-estate-news/mortgage-rates-were-falling-before-fed-signaled-rate-cut/' } ]

Оригинал: “https://dev.to/cpow/scraping-websites-with-nodejs-11om”