Основное руководство по очистке результатов Google Покупок

Основное руководство по очистке результатов Google Покупок

9 декабря 2022 г.

В этом посте мы научимся очищать результаты Google Shopping с помощью Node JS.

Требования:

Веб-анализ с помощью селекторов CSS

Поиск тегов в HTML-файлах — это не только сложная задача, но и трудоемкий процесс. Лучше использовать гаджет CSS-селекторов для выбора идеальных тегов, которые упростят ваш поиск в Интернете.

Этот гаджет может помочь вам найти идеальный селектор CSS для ваших нужд. Вот ссылка на руководство, которое научит вас использовать этот гаджет для выбора лучших селекторов CSS в соответствии с вашими потребностями.

Агенты пользователя

User-Agent используется для идентификации приложения, операционной системы, поставщика и версии запрашивающего пользовательского агента, что может помочь при ложном посещении Google под видом реального пользователя.

Вы также можете чередовать пользовательские агенты, подробнее об этом читайте в этой статье: Как подделывать и чередовать пользовательские агенты с помощью Python 3.

Установить библиотеки

Чтобы собирать отзывы с карт Google, нам нужно установить несколько библиотек NPM, чтобы двигаться дальше.

  1. Юнирест JS
  2. Cheerio JS

Поэтому перед началом мы должны убедиться, что мы настроили наш проект Node JS и установили оба пакета — Unirest JS и Cheerio JS. Вы можете установить оба пакета по приведенной выше ссылке.

Цель:

Scrape Google Shopping Results 2

Мы будем собирать результаты покупок обуви Nike.

Процесс:

Мы установили все, что нам понадобится для нашего скребка. Теперь мы перейдем к нашему целевому URL-адресу с помощью Unirest JS, чтобы получить данные HTML, а затем проанализируем извлеченные данные HTML с помощью Cheerio JS.

Мы настроим таргетинг на этот URL:

https://www.google.com/search?q=nike shoes&tbm=shop&gl=us

Посмотрите на параметр tbm и его значение (shop, здесь). Это значение shop сообщит Google, что мы ищем результаты покупок.

Откройте этот URL-адрес в своем браузере. Проверьте код. Вы увидите, что каждый результат органической покупки находится внутри этого тега .sh-dgr__gr-auto.

Scrape Google Shopping Results 3

Теперь мы будем искать теги по названию, ссылке на продукт, цене, рейтингу, отзывам, доставке и источнику.

Очистить результаты Google Покупок 4 Очистить результаты Google Покупок 5Вышеприведенные изображения расположены по схеме: два вверху и одно внизу.

Мы завершили поиск тегов результатов обычных покупок. Теперь мы будем искать теги результатов объявлений.

Scrape Google Shopping Results 6

Если вы просмотрите результаты объявлений, вы увидите, что все результаты объявлений находятся внутри тега .sh-np__click-target. Этот тег содержит всю информацию о заголовке, ссылке, цене и источнике.

Все вышеперечисленное делает наш код таким:

 const unirest = require("unirest");
    const cheerio = require("cheerio");

    const getShoppingData = () => {

      try
      {
      return unirest
        .get("https://www.google.com/search?q=nike shoes&tbm=shop&gl=us")
        .headers({
          "User-Agent":
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
        })
        .then((response) => {
          let $ = cheerio.load(response.body);


        let ads = [];

        $(".sh-np__click-target").each((i,el) => {
         ads.push({
            title: $(el).find(".sh-np__product-title").text(),
            link: "https://google.com" + $(el).attr("href"),
            source: $(el).find(".sh-np__seller-container").text(),
            price: $(el).find(".hn9kf").text(),
            delivery: $(el).find(".U6puSd").text(),
         })
         if($(el).find(".rz2LD").length)
         {
          let extensions = []
            extensions = $(el).find(".rz2LD").text()
            ads[i].extensions = extensions
         }
         })

        for (let i = 0; i < ads.length; i++) {
            Object.keys(ads[i]).forEach(key => ads[i][key] === "" ? delete ads[i][key] : {});  
        }

        let shopping_results = [];

        $(".sh-dgr__gr-auto").each((i,el) => {
            shopping_results.push({
                title: $(el).find(".Xjkr3b").text(),
                link: $(el).find(".zLPF4b .eaGTj a.shntl").attr("href").substring($(el).find("a.shntl").attr("href").indexOf("=")+1),
                source: $(el).find(".IuHnof").text(),
                price: $(el).find(".XrAfOe .a8Pemb").text(),
                rating: $(el).find(".Rsc7Yb").text(),
                reviews: $(el).find(".NzUzee div").attr("aria-label") ? $(el).find(".NzUzee div").attr("aria-label").substring(0,$(el).find(".NzUzee div").attr("aria-label").indexOf(" ")) : "",
                delivery: $(el).find(".vEjMR").text()
            })
            if($(el).find(".Ib8pOd").length)
            {
                let extensions = [];
                extensions = $(el).find(".Ib8pOd").text();
                shopping_results[i].extensions = extensions
            }
        })

        for (let i = 0; i < shopping_results.length; i++) {
            Object.keys(shopping_results[i]).forEach(key => shopping_results[i][key] === "" ? delete shopping_results[i][key] : {});  
         }

         console.log(ads)
         console.log(shopping_results)
        })
      }
     catch(e)
     {
        console.log(e)
     }
    }


    getShoppingData();

Вы также можете ознакомиться с некоторыми другими парсерами Google в моем репозитории Git: https://github.com/Darshan972/GoogleScrapingBlogs

Результат:

Scrape Google Shopping Results 7

Наш результат должен выглядеть так 👆🏻.

С API Google Покупок

Если вы не хотите программировать и поддерживать парсер в долгосрочной перспективе и не хотите работать со сложными URL-адресами и HTML, вы можете попробовать этот Google API поиска.

n Серпдог | Google Search API решает все проблемы с капчами и прокси-серверами и позволяет разработчикам беспрепятственно очищать результаты поиска Google. Кроме того, предварительно подготовленные структурированные данные JSON могут сэкономить вам много времени.

 const axios = require('axios');

    axios.get('https://api.serpdog.io/shopping?api_key=APIKEY&q=shoes&gl=us')
      .then(response => {
        console.log(response.data);
      })
      .catch(error => {
        console.log(error);
    });

Результат:

Scrape Google Shopping Results 8

Вывод:

В этом руководстве мы научились очищать результаты Google Покупок с помощью Node JS. Не стесняйтесь сообщать мне все, что вам нужно разъяснить. Подпишитесь на меня в Твиттере. Спасибо за прочтение!

Также опубликовано здесь

Дополнительные ресурсы

  1. Очистить результаты картинок Google
  2. Очистить отзывы Google Карт

Часто задаваемые вопросы

В. Как получить результаты Google Покупок?

Вы можете получать результаты Google Покупок с помощью Serpdog API Google Покупок без каких-либо проблем с прокси-серверами и CAPTCHA. Эти данные являются одним из лучших источников для анализа цен конкурентов, сентиментального анализа и т. д.

Автор:

Меня зовут Даршан, и я основатель Serpdog. Я люблю создавать скребки. В настоящее время я работаю с несколькими транснациональными корпорациями, чтобы предоставить им данные поиска Google через бесшовный конвейер данных.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE