В этой статье вы узнаете:
- Что такое обзор искусственного интеллекта Google.
- Как это работает и почему скраппинг может быть ценным.
- Пошаговое руководство по поиску информации в Google AI.
- Проблемы и способы их решения.
Давайте погрузимся!
Что такое обзор искусственного интеллекта Google?
Google AI Overview – это функция, интегрированная в Google Search, которая предоставляет резюме, сгенерированные искусственным интеллектом, в верхней части результатов поиска. За ее работу отвечает большая языковая модель Gemini от Google.
Эти обзоры синтезируют информацию из нескольких веб-источников, предлагая краткие ответы на запросы пользователей. Часто они содержат ссылки на статьи из первоисточников, помогая пользователям углубиться.
По состоянию на май 2025 года обзоры ИИ доступны в более чем 200 странах и территориях, а также на более чем 40 языках. Первоначально эта функция была доступна только в США.
Зачем скрапить обзоры Google AI?
Ответы Google AI Overview – это нечто большее, чем просто общие ответы, которые может генерировать Gemini или любой другой поставщик услуг искусственного интеллекта. Ключевым отличием является то, что они основаны на ссылках SERP(Search Engine Results Pages) и контенте, содержащемся в этих ссылках.
Другими словами, их контент подкреплен реальными статьями, страницами и сайтами, а также часто содержит ссылки для дальнейшего чтения и расширения. Это то, что обычно с трудом удается сделать магистрантам.
Таким образом, программно скрапируя Google AI Overviews, можно создать своего рода чат-бот SERP на базе ИИ, который будет использовать реальные результаты SERP для получения ответов, оптимизированных под RAG. Идея заключается в том, чтобы получать ответы, основанные на актуальном, поддающемся проверке веб-контенте.
Как вы узнаете в конце этой статьи, хотя такой подход, безусловно, интересен, он сопряжен с некоторыми трудностями. Поэтому вы можете изучить наше руководство о том , как создать чатбота SERP с помощью RAG.
Как соскрести обзор Google AI на Python: Пошаговое руководство
В этом разделе мы расскажем вам о том, как создать обзор Google AI. Вы узнаете, как создать сценарий на Python, который:
- Подключается к Google.
- Выполняет поисковый запрос.
- Ожидает загрузки обзора ИИ.
- Соскребает с него HTML.
- Преобразует содержимое в Markdown.
- Экспортирует его в выходной файл
Следуйте приведенным ниже инструкциям, чтобы узнать, как выполнить скраппинг обзора Google AI!
Шаг №1: Настройка проекта
Прежде чем приступить к работе, убедитесь, что на вашей машине установлен Python 3. Если нет, загрузите его и следуйте указаниям мастера установки.
Откройте терминал и выполните следующие команды:
mkdir google-ai-overview-scraper
cd google-ai-overview-scraper
python -m venv venv
Они создадут новую папку google-ai-overview-scraper/
для вашего проекта скрепера и инициализируют виртуальную среду.
Загрузите папку с проектом в вашу любимую Python IDE. PyCharm Community Edition или Visual Studio Code с расширением Python – два хороших варианта.
В папке проекта создайте файл scraper.py:
google-ai-overview-scraper/
├── venv/ # Your Python virtual environment
└── scraper.py # Your scraping script
Сейчас scraper.py
– это пустой скрипт, но вскоре он будет содержать логику скрапинга.
В терминале IDE активируйте виртуальную среду. В Linux или macOS выполните эту команду:
source ./venv/bin/activate
В качестве альтернативы в Windows выполните команду:
venv/Scripts/activate
Отлично! Теперь у вас есть чистое окружение Python, созданное для вашего проекта по скраппингу.
Шаг № 2: Установите Playwright
Google – динамичная платформа, и с последними обновлениями для полной загрузки большинства страниц теперь требуется выполнение JavaScript. Кроме того, создать правильный URL-адрес Google Search вручную может быть непросто. Поэтому лучший способ взаимодействия с Google Search – это имитация поведения пользователя в браузере.
Другими словами, чтобы скрафтить раздел “Обзор AI”, вам понадобится инструмент автоматизации браузера. Это позволит вам запустить настоящий браузер, загрузить веб-страницы и взаимодействовать с ними программно – точно так же, как это делает пользователь.
Одним из лучших инструментов автоматизации браузеров для Python является Playwright. В активированной виртуальной среде Python установите Playwright с помощью пакета playwright
pip:
pip install playwright
Теперь завершите установку Playwright:
python -m playwright install
Эта команда загрузит необходимые исполняемые файлы браузера и другие компоненты, которые нужны Playwright для управления веб-браузерами.
Более подробную информацию об использовании этого инструмента можно найти в нашем руководстве по веб-скраппингу с помощью Playwright.
Потрясающе! Теперь у вас все готово для того, чтобы начать поиск раздела AI Overview в Google.
Шаг № 3: Перейдите на домашнюю страницу Google
Откройте файл scraper.py
, импортируйте Playwright и инициализируйте экземпляр Chromium в режиме headless:
import asyncio
from playwright.async_api import async_playwright
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
Этот фрагмент создает экземпляр Playwright Page
, который позволяет программно управлять вкладкой браузера. Установка headless=True
запускает браузер в фоновом режиме, без графического интерфейса. Если вы занимаетесь разработкой или хотите отладить, установите headless=False
, чтобы наблюдать за тем, что делает ваш скрипт во время выполнения.
Поскольку async_playwright
работает асинхронно, скрипт должен использовать модуль asyncio
в Python.
Отказ от ответственности: имейте в виду, что новые функции Google AI Overview обычно сначала внедряются в США. Для получения более точных результатов вам может потребоваться геолокация вашей машины на город в США. Для этого интегрируйте Playwright с веб-прокси. В частности, ознакомьтесь с нашими вариантами прокси для США.
С этого момента мы будем считать, что вы работаете на территории Соединенных Штатов.
Теперь используйте метод goto()
в Playwright, чтобы открыть домашнюю страницу Google:
await page.goto("https://google.com/")
Не забывайте очищать ресурсы, закрывая браузер по окончании работы скрипта:
await browser.close()
Соедините все это вместе и получите:
import asyncio
from playwright.async_api import async_playwright
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
# Navigate to Google
await page.goto("https://google.com/")
# scraping logic goes here ...
# Close the browser and free resources
await browser.close()
asyncio.run(run())
Фантастика! Вы готовы скрести динамические сайты, такие как Google.
Шаг № 4: Отправьте форму поиска
Перейдите на домашнюю страницу Google в браузере. Щелкните правой кнопкой мыши на строке поиска и выберите “Осмотреть”, чтобы открыть Инструменты разработчика браузера:
В структуре HTML Google часто используются динамически генерируемые классы и атрибуты, которые, скорее всего, будут меняться при каждом развертывании. Это делает их ненадежными для скраппинга, так как ваши селекторы со временем будут ломаться.
Вместо этого ориентируйтесь на стабильные атрибуты HTML. Например, текстовая область поиска имеет четкий атрибут aria-label
:
textarea[aria-label="Search"]
С помощью метода fill()
выделите текстовую область поиска и заполните ее поисковым запросом Google:
await page.fill("textarea[aria-label='Search']", search_query)
В данном примере переменная search_query
определена следующим образом:
search_query = "What is web scraping?"
Обратите внимание, что использование запроса в стиле вопроса – отличный способ побудить Google создать раздел “Обзор ИИ”. Это очень важно, поскольку данный раздел не всегда присутствует на страницах результатов поиска. Не стесняйтесь корректировать поисковый запрос в соответствии с конкретным случаем использования.
Затем запустите поиск, имитируя нажатие клавиши Enter:
await page.keyboard.press("Enter")
Если вы запустите скрипт в режиме headful(headless=False
) и установите точку останова на строке page.close()
, то вот что вы должны увидеть:
Обратите внимание на раздел “Обзор ИИ” в верхней части страницы результатов. Если он не отображается, попробуйте повторно запустить сценарий с другим, более вопросительным запросом. Потрясающе!
Шаг #5: Соскоблите раздел обзора Google AI
Если вы изучите, как работает функция Google AI Overview, вы заметите, что возможны три сценария:
- Кэшированный ответ: Сниппет обзора AI уже закеширован и появляется мгновенно.
- Генерация в режиме реального времени: ИИ-обзор создается динамически, с небольшой задержкой, пока Google обрабатывает запрос.
- Отсутствие обзора ИИ: Google вообще не показывает раздел “Обзор ИИ”.
В этом разделе мы сосредоточимся на сценарии 2, в котором обзор ИИ генерируется на лету. Это самый сложный случай, и он также охватывает Сценарий 1.
Чтобы запустить его, попробуйте использовать свежие или менее распространенные запросы в стиле вопросов. Например:
Как показано выше, раздел AI Overview появляется после нескольких миллисекунд обработки. В частности, он может считаться готовым только тогда, когда его элемент заголовка содержит текст “AI Overview”.
Таким образом, проверьте элемент, содержащий заголовок AI Overview:
Вы можете выбрать заголовок с помощью следующего селектора CSS:
div[jsname][role="heading"] strong
Чтобы убедиться в наличии раздела AI Overview, дождитесь появления этого элемента с правильным текстом:
await page.locator(
"div[jsname][role='heading'] strong", has_text="ai overview"
).first.wait_for(timeout=30000)
Это позволит ждать до 30 секунд (30000 миллисекунд), пока элемент с текстом “ai overview” (без учета регистра) не окажется на странице.
Теперь, когда вы убедились, что раздел AI Overview загрузился, приготовьтесь к его соскабливанию. В большинстве случаев часть контента изначально скрыта за кнопкой “Показать больше”:
Чтобы получить полный ответ, проверьте, есть ли кнопка “Показать больше”, а затем нажмите ее:
try:
# Clicking the "Show more" button if it is present on the page
ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
await ai_overview_show_more_button.click()
except PlaywrightTimeoutError:
print("'Show more' button not present")
Не забудьте импортировать PlaywrightTimeoutError
, который срабатывает, когда функция locator()
не находит указанный элемент:
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
Когда весь раздел будет виден, изучите структуру HTML, чтобы определить, как его выбрать:
Как вы можете видеть, основное содержимое обзора AI можно выбрать с помощью этого CSS-селектора:
div[jsname][data-rl] div
Используйте следующий код, чтобы найти элемент и извлечь его HTML:
ai_overview_element = page.locator("div[jsname][data-rl] div").first
ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")
Если вам интересно, почему мы извлекли HTML, а не просто текст, продолжайте читать.
Вот и все! Вы успешно соскоблили раздел обзора Google AI.
Шаг #6: Преобразование HTML-файла обзора Google AI в Markdown
Когда речь заходит о веб-скреппинге, наиболее распространенной целью является извлечение текста из элементов, а не их полного HTML. Однако в большинстве случаев контент, созданный искусственным интеллектом, в разделе “Обзор Google AI” не является обычным текстом.
Вместо этого он может включать в себя пули, ссылки, подзаголовки и даже изображения. Если рассматривать этот контент как обычный текст, то он лишится всей этой структуры и контекста – ценной информации, которую необходимо сохранить.
Поэтому лучше всего рассматривать AI-обзор как необработанный HTML, а затем преобразовать его в Markdown, идеальный формат для AI-приложений.
Чтобы преобразовать HTML в Markdown, установите Markdownify в ваше активированное окружение:
pip install markdownify
Импортируйте его:
from markdownify import markdownify as md
И используйте его для преобразования данных из HTML в Markdown:
ai_overview_markdown = md(ai_overview_html)
Потрясающе! Осталось только экспортировать отсканированный AI Overview в файл Markdown.
Шаг № 7: Экспорт собранных данных
Используйте стандартную библиотеку Python, чтобы открыть выходной файл с именем ai_overview.md
и записать в него преобразованное содержимое в формате Markdown:
with open("ai_overview.md", "w", encoding="utf-8") as f:
f.write(ai_overview_markdown)
На этом ваше путешествие по скраппингу Google AI Overview заканчивается!
Шаг № 8: Соберите все вместе
На данный момент файл scraper.py
должен содержать:
import asyncio
from playwright.async_api import async_playwright
from playwright.async_api import TimeoutError as PlaywrightTimeoutError
from markdownify import markdownify as md
async def run():
async with async_playwright() as p:
# Start a new Chromium instance
browser = await p.chromium.launch(headless=True) # Set to False while developing
context = await browser.new_context()
page = await context.new_page()
# Navigate to Google
await page.goto("https://google.com/")
# Fill out search form
search_query = "What is web scraping?" # Replace it with the search query of interest
await page.fill("textarea[aria-label='Search']", search_query)
await page.keyboard.press("Enter")
# Wait for the AI overview section to be ready
await page.locator(
"div\[jsname\][role='heading'] strong", has_text="ai overview"
).first.wait_for(timeout=30000)
try:
# Clicking the "Show more" button if it is present on the page
ai_overview_show_more_button = page.locator("div[aria-label='Show more AI Overview']").first
await ai_overview_show_more_button.click()
except PlaywrightTimeoutError:
print("'Show more' button not present")
# Extract the AI overview HTML
ai_overview_element = page.locator("div\[jsname\][data-rl] div").first
ai_overview_html = await ai_overview_element.evaluate("el => el.outerHTML")
# Convert the HTML to Markdown
ai_overview_markdown = md(ai_overview_html)
# Export the Markdown to a file
with open("ai_overview.md", "w", encoding="utf-8") as f:
f.write(ai_overview_markdown)
# Close the browser and free resources
await browser.close()
asyncio.run(run())
Вот это да! С помощью менее чем 50 строк кода вы только что поскребли раздел обзора ИИ Google.
Запустите вышеупомянутый сканер Google AI Overview с помощью:
python script.py
Если все прошло как надо, в папке проекта появится файл ai_overview.md
. Откройте его и вы должны увидеть что-то вроде:
Web scraping is the process of using automated tools (called scrapers or bots) to extract content and data from websites. Unlike screen scraping, which captures only the visible pixels, web scraping delves deeper to retrieve the underlying HTML code and data stored in a website's database. This extracted data can then be used for various purposes like price comparison, market research, or data analysis.
Here's a more detailed explanation:
* **Automated Extraction:**
Web scraping involves using software to automatically visit websites, locate and extract specific data, and save it in a structured format like a CSV file or database.
* **HTML and Database Data:**
Scrapers don't just copy the visual content; they access the HTML code and data stored in the website's database to retrieve more comprehensive information.
* **Various Use Cases:**
Web scraping is employed for various purposes, including price comparison, market research, competitor analysis, lead generation, sentiment analysis, and more.
* **Not Just for Businesses:**
While businesses often use web scraping for data-driven decision-making, it's also valuable for individuals seeking price comparisons, market trends, or general data analysis.
* **Consider Ethical and Legal Implications:**
When web scraping, it's crucial to be aware of the website's terms of service and robots.txt file to ensure you are not violating their policies or engaging in illegal activities.
Скопируйте приведенное выше содержимое в формате Markdown и вставьте его в программу просмотра Markdown, например StackEdit:
Это именно структурированная, легко читаемая и информационно насыщенная версия сниппета обзора Google AI, преобразованная из необработанного HTML в чистый Markdown!
И вуаля! Миссия выполнена.
Проблемы, возникающие при скрапировании обзора Google AI
Если вы продолжите запускать скрипт в режиме руководителя, то в какой-то момент вы, скорее всего, столкнетесь с этой страницей блокировки:
Если вы делаете слишком много автоматических запросов или используете IP-адрес с низким показателем надежности, Google определит вашу активность как бота и вызовет повторный запрос (reCAPTCHA).
В качестве обходного пути можно попробовать обойти CAPTCHA в Python. Это может сработать для более простых CAPTCHA, но часто не работает против более продвинутых или новых версий reCAPTCHA, таких как reCAPTCHA v3.
В таких случаях вам, скорее всего, понадобится премиум-сервис для решения CAPTCHA. Другой подход – настроить Playwright на работу в браузере, отличном от Chromium. Проблема в том, что по умолчанию Playwright использует Chromium (или любой другой браузер) таким образом, что его могут обнаружить антиботы Google.
Чтобы избежать обнаружения, вы можете интегрировать Playwright с AI Agent Browser. Это облачный браузер, совместимый с Playwright и специализирующийся на веб-скреппинге и поиске данных в агентных рабочих процессах.
Преимущества такого подхода – практически бесконечная масштабируемость и значительное сокращение количества CAPTCHA-задач. Даже если CAPTCHA появляются, Agent Browser предоставляет возможности решения CAPTCHA, а также интеграцию с прокси-серверами, что позволяет геолоцировать Google AI Overview scraping на любую страну или язык.
Заключение
В этом уроке вы узнали, что такое обзор Google AI и как извлекать из него данные. Как вы видели, создание простого сценария на Python для автоматического получения этих данных требует всего нескольких строк кода.
Хотя это решение хорошо подходит для небольших проектов, оно нецелесообразно для крупномасштабного скраппинга. Google использует одни из самых передовых технологий защиты от ботов в отрасли, что может привести к появлению CAPTCHA или запрету IP-адресов. Кроме того, масштабирование этого процесса на множество страниц значительно увеличит расходы на инфраструктуру.
Если вам нужны данные Google SERP для работы с искусственным интеллектом, воспользуйтесь API, который предоставляет данные SERP, готовые для искусственного интеллекта, напрямую, например SERP API от Bright Data.
Создайте бесплатную учетную запись Bright Data и получите доступ ко всем решениям в нашей инфраструктуре данных искусственного интеллекта!