AI-AGENT#1. Парсинг данных с помощью нейросети.

soprano

Client
Регистрация
25.08.2011
Сообщения
922
Благодарностей
1 033
Баллы
93
AI-AGENT#1. Парсинг данных с помощью нейросети.

Приветствую всех.
Этой статьей начинаю небольшой цикл об использовании нейросетей/ИИ агентов в автоматизации.


Итак, что такое ИИ-агенты, зачем и для чего они нужны и самое главное - как их использовать! Давайте разбираться!
Справка:
ИИ-агент – это продвинутая программа, оборачивающая большую языковую модель (LLM) в «тело» с набором задач и инструментов. Такая система способна автоматически получать новую информацию (ввод), планировать последовательность действий (контрольный цикл «планирование–действие–обратная связь»), вызывать внешние сервисы (инструменты или API) и корректировать свои действия при возникновении ошибок. Проще говоря, ИИ-агент “дает мозгу ИИ тело и цель”. Он динамически выбирает, какие инструменты использовать, разбивает сложные задачи на шаги и последовательно их выполняет.

ZennoPoster часто используется как инструмент для парсинга данных. Пишется шаблон, который обрабатывает HTML и вытягивает нужные фрагменты: текст, ссылки, цены, характеристики, телефоны, email и т. д. Если сайт генерирует содержимое на стороне клиента с помощью JavaScript, в ход идут Selenium и т.п. - инструменты, которые позволяют управлять браузером и парсить уже прорендеренную страницу.
Основной метод этих подходов - в явном виде прописать, какие элементы HTML страницы нужно вытащить. Например, чтобы в найти div с классом .product-price или спарсить теги <span>, в которых хранится цена. Для этого мы используем XPath и CSS-селекторы, а также регулярные выражения.
Такой способ хорошо работает, но требует постоянной поддержки. Стоит на сайте немного изменить верстку, добавить новые классы или изменить структуру - парсер ломается или собирает неверные данные.
А когда нужно собирать данные с разных сайтов с различной структурой? Всё становится сложнее и сложнее.
Выход - сделать так, чтобы измененная структура сайтов не ломала скрипты, новая верстка определялась автоматически. И вот здесь нам помогут нейросети.
Раньше, когда говорили о парсинге с помощью нейросети, то имелось ввиду - сбор датасетов, обучение моделей и так далее.
Сейчас можно подключить бесплатный API нейросети и дать ему задачу на обработку полученного кода. То есть, даем в шаблоне ссылку на документ, делаем запрос, получаем HTML сайта целиком и отправляем его в GPT модель по API.
Я использую для работы API Gemini, которое ежемесячно обновляется и бесплатно позволяет обрабатывать большой объем информации. Так как Google считает себя недостойным работать в самых лучших и безопасных странах (имею ввиду - РФ и РБ), то чтобы подружиться с этой нейросетью придется приложить немного усилий:

Вариант#1

Использовать лучшие в мире прокси (без шуток), которые можно взять здесь:


Вариант#2

Сделать запрос через Cloudflare. Чуть подробнее расскажу об этом, вдруг кто забыл:

1.Регистрируемся бесплатно в cloudflare.
2.Создаём worker. Заходим в него, должно быть 2 окна, слева - с кодом, который можно изменять.
3.Вставляем в левое окно следующий код:

export default {
async fetch(request) {
// URL внешнего сервера
const externalUrl = "https://generativelanguage.googleapis.com";

// Формирование полного URL для запроса
const url = new URL(request.url);
const proxiedUrl = externalUrl + url.pathname + url.search;

try {
// Проксирование запроса
const proxiedRequest = new Request(proxiedUrl, {
method: request.method,
headers: request.headers,
body: request.method !== "GET" && request.method !== "HEAD" ? request.body : null,
});

// Выполнение запроса к внешнему API
const response = await fetch(proxiedRequest);

// Возврат ответа клиенту
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response.headers,
});
} catch (error) {
// Обработка ошибок
return new Response(JSON.stringify({ error: error.message }), {
status: 500,
headers: { "Content-Type": "application/json" },
});
}
},
};

4.Нажимаем в правом окне значок обновления.
5.Забираем ссылку такого вида (https://workers-playground-old-block-8f99.youremail-2b0.workers.dev/)
6.Эта ссылка полностью заменяет https://generativelanguage.googleapis.com, через которую идет запрос к API Gemini и маскирует наш IP.


Также нужно получить бесплатный apikey для работы с нейросетью Gemini на https://aistudio.google.com/app/apikey?hl=ru (можно через VPN).

Теперь перейдем к шаблону. Код небольшой, меньше 100 строк.

В качестве примера используется тестовый сайт для обучения парсингу http://books.toscrape.com

Будем парсить данные книг с сайта, в частности: Наименование, Цена, Рейтинг.

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

Все полученные значения будем сохранять в текстовый файл в виде JSON.

Вот результат парсинга:
134178


Все библиотеки встроенные, за исключением Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json)

Можно настроить парсер на более сложные сайты, с переходом по страницам и другими подобными фишками.

Будущее за ИИ.

Всем успехов!
 

Вложения

Кто просматривает тему: (Всего: 3, Пользователи: 1, Гости: 2)