Создание продвинутого веб-скрапера BrightData с помощью Google Gemini для извлечения данных с помощью ИИ

В этом руководстве мы покажем вам, как создать усовершенствованный инструмент для веб-скрапинга, который использует мощную прокси-сеть BrightData в сочетании с API Google Gemini для интеллектуального извлечения данных. Вы увидите, как структурировать проект на Python, установить и импортировать необходимые библиотеки, а также инкапсулировать логику скрапинга в чистом и повторно используемом классе BrightDataScraper.

Установка необходимых библиотек

Мы установим все ключевые библиотеки, необходимые для этого руководства, в один шаг:
* `langchain-brightdata` для веб-скрапинга BrightData;
* `langchain-google-genai` и `google-generativeai` для интеграции с Google Gemini;
* `langgraph` для оркестрации агентов;
* `langchain-core` для основного фреймворка LangChain.

“`
!pip install langchain-brightdata langchain-google-genai langgraph langchain-core google-generativeai
“`

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

“`
import os
import json
from typing import Dict, Any, Optional
from langchain_brightdata import BrightDataWebScraperAPI
from langchaingooglegenai import ChatGoogleGenerativeAI
from langgraph.prebuilt import createreactagent
“`

Эти импорты подготавливают вашу среду и основные функциональные возможности:
* `os` и `json` обрабатывают системные операции и сериализацию данных;
* `typing` предоставляет структурированные подсказки типов.

Затем вы подключаете `BrightDataWebScraperAPI` для скрапинга BrightData, `ChatGoogleGenerativeAI` для взаимодействия с LLM Google Gemini и `createreactagent` для координации этих компонентов в агенте в стиле React.

Класс BrightDataScraper

Класс `BrightDataScraper` инкапсулирует всю логику веб-скрапинга BrightData и дополнительный интеллект на базе Gemini под единым повторно используемым интерфейсом. Его методы позволяют вам легко получать сведения о продуктах Amazon, списках бестселлеров и профилях LinkedIn, обрабатывая вызовы API, обработку ошибок и форматирование JSON, а также даже передавать запросы в формате естественного языка, когда предоставляется ключ API Google.

“`
class BrightDataScraper:
“””Enhanced web scraper using BrightData API”””

def init(self, apikey: str, googleapi_key: Optional[str] = None):
“””Initialize scraper with API keys”””
self.apikey = apikey
self.scraper = BrightDataWebScraperAPI(brightdataapikey=apikey)

if googleapikey:
self.llm = ChatGoogleGenerativeAI(
model=”gemini-2.0-flash”,
googleapikey=googleapikey
)
self.agent = createreactagent(self.llm, [self.scraper])

def scrapeamazonproduct(self, url: str, zipcode: str = “10001”) -> Dict[str, Any]:
“””Scrape Amazon product data”””
try:
results = self.scraper.invoke({
“url”: url,
“datasettype”: “amazonproduct”,
“zipcode”: zipcode
})
return {“success”: True, “data”: results}
except Exception as e:
return {“success”: False, “error”: str(e)}

# Другие методы класса…
“`

Основная функция

Функция `main()` объединяет всё вместе, устанавливая ваши ключи API BrightData и Google, создавая экземпляр `BrightDataScraper`, а затем демонстрируя каждую функцию:
* собирает данные об индийских бестселлерах Amazon;
* получает сведения о конкретном продукте;
* извлекает профиль LinkedIn;
* запускает запрос агента на естественном языке.

“`
def main():
“””Main execution function”””
BRIGHTDATAAPI_KEY = “Use Your Own API Key”
GOOGLEAPIKEY = “Use Your Own API Key”

scraper = BrightDataScraper(BRIGHTDATAAPIKEY, GOOGLEAPI_KEY)

print(“Scraping Amazon India Bestsellers…”)
bestsellers = scraper.scrapeamazonbestsellers(“in”)
scraper.print_results(bestsellers, “Amazon India Bestsellers”)

# Другие вызовы методов…
“`

В итоге этот блок точки входа гарантирует, что при запуске в качестве автономного скрипта необходимые библиотеки для скрапинга устанавливаются тихо, а ключ API BrightData задаётся в среде. Затем выполняется основная функция для запуска всех процессов скрапинга и агента.

В заключение, к концу этого руководства у вас будет готовый к использованию скрипт Python, который автоматизирует утомительные задачи по сбору данных, абстрагирует низкоуровневые детали API и при необходимости использует генеративный ИИ для расширенной обработки запросов. Вы можете расширить этот фундамент, добавив поддержку других типов наборов данных, интегрировав дополнительные LLM или развернув скрапер как часть более крупного конвейера данных или веб-службы. С этими строительными блоками вы теперь можете собирать, анализировать и представлять веб-данные более эффективно, будь то для исследования рынка, конкурентной разведки или пользовательских приложений, управляемых ИИ.

Источник

Оставьте комментарий