темный логотип proxyscrape

Как скрести Google с помощью Python

Как это сделать, Python, Скрапинг, Ноябрь-02-20225 минут чтения

Google is the biggest player among all search engines when it comes to searching information on the Internet. According to the estimates, over 3.5 billion searches are performed on Google Search every day. We (Google users) are only given a certain amount of information based on Google Analytics and Google Ads. Google uses its API

Оглавление

Google - крупнейший игрок среди всех поисковых систем, когда речь идет о поиске информации в Интернете. По оценкам, ежедневно в Google Search выполняется более 3,5 миллиарда поисковых запросов. Нам (пользователям Google) предоставляется лишь определенный объем информации, основанный на данных Google Analytics и Google Ads. Google использует свой API (интерфейс прикладного программирования) и, по сути, выбирает наиболее ценную для нас информацию, основываясь на своих исследованиях и рейтингах. Но что, если мы хотим копнуть немного глубже, чтобы понять, какая информация действительно ценна для вас? 

Вот тут-то и возникает необходимость в скраппинге. Вы можете представить себе скрепер Google как способ выделения наиболее важных глав книги. Когда вы сканируете учебник в поисках информации, вы, как правило, выбираете текст, который будет наиболее ценным для вашего исследования или теста. Но Всемирная паутина больше, чем 1000-страничная книга. Поэтому в случае с Интернетом Google scraper может стать вашим глазом-лазером, который мгновенно выхватывает и собирает лучшие результаты по интересующей вас теме. Вы можете извлекать результаты поиска Google по определенным ключевым словам. Например, если вы будете скрести Google по ключевому слову "львы", веб-скрепер Google выдаст вам определенное количество URL-адресов с наивысшим рейтингом по этому ключевому слову. Чем больше ключевых слов вы используете, тем более конкретные URL-адреса и данные вам предоставит Google. Чем конкретнее данные, тем больше они будут соответствовать вашим требованиям. Но сначала давайте разберемся, зачем нужно скрести Google.

Зачем вам нужно скрести Google?

Вы знаете, что Google - это главная точка входа в Интернет для миллиардов людей, и почти каждый бизнес хочет появиться в результатах поиска Google. Рейтинги и отзывы Google оказывают огромное влияние на онлайн-профили местных компаний. Маркетинговые агентства, имеющие множество клиентов из разных отраслей, в значительной степени полагаются на получение надежных инструментов SEO (Search Engine Optimization). Они являются средством эффективного выполнения различных задач, а также средством успешного управления и анализа результатов. 

Ниже перечислены некоторые из вариантов использования скраппинга Google.

  • Вы можете анализировать объявления по заданному набору ключевых слов.
  • Вы можете отслеживать конкурентов как в органических, так и в платных результатах.
  • Вы можете составить список URL-адресов по определенным ключевым словам. 

Предприятиям необходимо скрести Google по следующим причинам.

  • Поисковая оптимизация (SEO) - скраппинг Google показывает компании, насколько высоко страница их сайта отображается на странице результатов Google, и дает представление о том, сколько ключевых слов используется на любой странице сайта. Чем больше ключевых слов используется на сайте, тем выше эта страница появляется на странице результатов. Таким образом, понимание того, как использовать SEO, позволяет поддерживать высокую конкурентоспособность вашего бизнеса.
  • Маркетинг - чем чаще мы видим логотип Amazon на наших экранах, тем больше вероятность того, что мы обратимся к Amazon, когда нам понадобится сделать покупку. Скраппинг Google помогает собрать данные о том, как ваши конкуренты рекламируют свои продукты, какие продукты они выбирают для рекламы и как покупатели реагируют на эти продукты. 
  • Конкурентная тактика продаж - Google scraping поможет вашей компании разработать более конкурентоспособную тактику продаж. Если ваша компания занимает низкие позиции на определенной странице результатов, это может дать представление о том, почему конкретный продукт вашей компании не пользуется успехом. Скрапинг дает вам преимущество перед конкурентами и предлагает новые способы быть конкурентоспособными в этом мире. 

Скраппинг Google с помощью Python

Давайте посмотрим, как с помощью python можно сделать снимок Google.

Установка

Сначала нужно установить fake-useragent. Он подхватывает актуальный useragent с реальной базой данных.

pip install fake-useragent

Импорт библиотек

Вам нужно импортировать все необходимые библиотеки, как показано ниже.

import pandas as pd
import numpy as np
импортировать urllib
from fake_useragent import UserAgent
импортировать запросы
импортировать re
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup

Используйте ключевое слово

Вы должны построить URL Google, используя ключевое слово и количество результатов. Для этого мы выполним два шага:

  1. Закодируйте ключевое слово в HTML с помощью urllib
  2. Добавьте идентификатор в URL

Предположим, что наше ключевое слово - "машинное обучение python".

keyword= "машинное обучение python"
html_keyword= urllib.parse.quote_plus(keyword)
print(html_keyword)

Когда мы выводим ключевое слово, то получаем следующий результат.

Создайте URL-адрес Google

После кодирования ключевого слова в HTML с помощью urllib мы должны создать URL Google, как показано ниже.

количество_результатов = 15
google_url = "https://www.google.com/search?q=" + html_keyword + "&num=" + str(number_of_result)
print(google_url)

Мы получаем следующий URL-адрес:

Получите результаты

Теперь нам нужно перейти по URL и получить результат. В этом нам помогут Beautiful Soup и Fake Useragent.

ua = UserAgent()
response = requests.get(google_url, {"User-Agent": ua.random})
soup = BeautifulSoup(response.text, "html.parser")

Регулярные выражения нужны нам только для извлечения нужной информации.

result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
#this is because in rare cases we can't get the urls
links=[i.group(1) for i in results if i != None]
links

Вот что мы получаем.

Вот как можно скреативить Google с помощью Python. 

Мы также можем свести весь вышеприведенный код в одну функцию скрепера, как показано ниже.

def google_results(keyword, n_results):
    query = keyword
    query = urllib.parse.quote_plus(query) # Format into URL encoding
    number_result = n_results
    ua = UserAgent()
    google_url = "https://www.google.com/search?q=" + query + "&num=" + str(number_result)
    response = requests.get(google_url, {"User-Agent": ua.random})
    soup = BeautifulSoup(response.text, "html.parser")
    result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
    results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
    links=[i.group(1) for i in results if i != None]
    return (links)

Здесь google_results - это наша скреперная функция, в которой мы передаем ключевое слово и количество результатов в качестве параметров и строим URL Google.

google_results('машинное обучение на python', 10)

Вот что мы получаем.

Использование прокси-серверов

Что делать, если вы хотите подключиться к Google Ads API? Вы можете сделать это через прокси-сервер, установив конфигурацию http_proxy в файле google-ads.yaml, как показано ниже.

http_proxy: INSERT_PROXY_HERE

В качестве прокси можно указать http://user:pass@localhost:8082. Вы также можете настроить параметры прокси программно с помощью методов GoogleAdsClient:

  • load_from_dict
  • load_from_env
  • load_from_string

Например, 

config = {
  ...
  "http_proxy": "INSERT_PROXY_HERE",
}
googleads_client = GoogleAdsClient.load_from_dict(config)

Чтобы использовать прокси из метода load_from_env, необходимо установить переменную окружения GOOGLE_ADS_HTTP_PROXY.

Зачем использовать прокси-серверы Google?

Ниже перечислены причины использования прокси-серверов Google.

  • Получите быстрые и уникальные результаты - Все поисковые системы, включая Google, не одобряют использование автоматизированного программного обеспечения для получения результатов. Если они обнаруживают, что с одного IP-адреса поступает несколько поисковых запросов, они блокируют этот IP-адрес и не позволяют ему получить доступ к каким-либо данным. Таким образом, имея целую партию уникальных и специализированных частных прокси, вы не только сможете использовать автоматизированное программное обеспечение для извлечения результатов поиска Google, но и получите эти данные очень быстро.
  • Обеспечение конфиденциальности - прокси-серверы Google гарантируют, что ваш оригинальный IP-адрес будет в безопасности и не подвергнется никаким попыткам взлома. Они также гарантируют, что конфиденциальная информация на вашем компьютере будет храниться в безопасном месте.
  • Автоматизация - Программа автоматизации работает правильно, используя качественные прокси, и вам не нужно приобретать что-либо еще в сочетании с выделенными прокси и программой автоматизации.

Заключение

С помощью Python вы можете скреативить Google:

  • Анализ конкурентов
  • Создание ссылок
  • Выделение социального присутствия
  • Поиск ключевых слов

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

Надеюсь, вы поняли, как скреативить Google с помощью Python.