Itinai.com ai compare futuristic offices of it companies imag 4a5cb5c8 72fd 4257 b1c1 d3aa2dcb17a6 3

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

Itinai.com ai compare futuristic offices of it companies imag 4a5cb5c8 72fd 4257 b1c1 d3aa2dcb17a6 3

«`html

Как создать продвинутый веб-скрейпер 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 langchain_google_genai import ChatGoogleGenerativeAI
from langgraph.prebuilt import create_react_agent

Эти импорты подготовят вашу среду и основную функциональность. Мы используем os и json для работы с системными операциями и сериализацией данных, а typing для структурированных подсказок типов.

Создание класса BrightDataScraper

class BrightDataScraper:
    """Улучшенный веб-скрейпер с использованием API BrightData"""
   
    def __init__(self, api_key: str, google_api_key: Optional[str] = None):
        """Инициализация скрейпера с ключами API"""
        self.api_key = api_key
        self.scraper = BrightDataWebScraperAPI(bright_data_api_key=api_key)
       
        if google_api_key:
            self.llm = ChatGoogleGenerativeAI(
                model="gemini-2.0-flash",
                google_api_key=google_api_key
            )
            self.agent = create_react_agent(self.llm, [self.scraper])

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

Методы скрейпинга

def scrape_amazon_product(self, url: str, zipcode: str = "10001") -> Dict[str, Any]:
        """Скрейпинг данных о продукте Amazon"""
        try:
            results = self.scraper.invoke({
                "url": url,
                "dataset_type": "amazon_product",
                "zipcode": zipcode
            })
            return {"success": True, "data": results}
        except Exception as e:
            return {"success": False, "error": str(e)} 

Методы скрейпинга позволяют извлекать данные о продуктах Amazon, бестселлерах и профилях LinkedIn. Каждый метод включает обработку ошибок, что делает вашу систему более надежной.

Запуск запросов AI-агента

def run_agent_query(self, query: str) -> None:
        """Запуск AI-агента с запросом на естественном языке"""
        if not hasattr(self, 'agent'):
            print("Ошибка: требуется ключ API Google для функциональности агента")
            return
       
        try:
            for step in self.agent.stream(
                {"messages": query},
                stream_mode="values"
            ):
                step["messages"][-1].pretty_print()
        except Exception as e:
            print(f"Ошибка агента: {e}") 

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

Вывод результатов

def print_results(self, results: Dict[str, Any], title: str = "Результаты") -> None:
        """Красивый вывод результатов"""
        print(f"\n{'='*50}")
        print(f"{title}")
        print(f"{'='*50}")
       
        if results["success"]:
            print(json.dumps(results["data"], indent=2, ensure_ascii=False))
        else:
            print(f"Ошибка: {results['error']}")
        print()

Функция для вывода результатов позволяет удобно просматривать извлеченные данные, что упрощает анализ и принятие решений.

Основная функция выполнения

def main():
    """Основная функция выполнения"""
    BRIGHT_DATA_API_KEY = "Используйте свой собственный ключ API"
    GOOGLE_API_KEY = "Используйте свой собственный ключ API"
   
    scraper = BrightDataScraper(BRIGHT_DATA_API_KEY, GOOGLE_API_KEY)
   
    print("Скрейпинг бестселлеров Amazon Индия...")
    bestsellers = scraper.scrape_amazon_bestsellers("in")
    scraper.print_results(bestsellers, "Бестселлеры Amazon Индия")
   
    print("Скрейпинг продукта Amazon...")
    product_url = "https://www.amazon.com/dp/B08L5TNJHG"
    product_data = scraper.scrape_amazon_product(product_url, "10001")
    scraper.print_results(product_data, "Данные о продукте Amazon")
   
    print("Скрейпинг профиля LinkedIn...")
    linkedin_url = "https://www.linkedin.com/in/satyanadella/"
    linkedin_data = scraper.scrape_linkedin_profile(linkedin_url)
    scraper.print_results(linkedin_data, "Данные профиля LinkedIn")
   
    print("Запуск запроса AI-агента...")
    agent_query = """
    Скрейпинг данных о продукте Amazon для https://www.amazon.com/dp/B0D2Q9397Y?th=1
    в Нью-Йорке (почтовый индекс 10001) и краткое резюме ключевых деталей продукта.
    """
    scraper.run_agent_query(agent_query)

Эта функция связывает все вместе, устанавливая ключи API и демонстрируя каждую функцию вашего скрейпера.

Заключение

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

Теперь у вас есть все необходимое для создания мощного инструмента для извлечения данных, который может помочь вам в исследовании рынка, конкурентной разведке или разработке индивидуальных приложений на базе ИИ.

«`

Новости в сфере искусственного интеллекта