- Регистрация
- 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. Чуть подробнее расскажу об этом, вдруг кто забыл:
Также нужно получить бесплатный apikey для работы с нейросетью Gemini на https://aistudio.google.com/app/apikey?hl=ru (можно через VPN).
Теперь перейдем к шаблону. Код небольшой, меньше 100 строк.
В качестве примера используется тестовый сайт для обучения парсингу http://books.toscrape.com
Будем парсить данные книг с сайта, в частности: Наименование, Цена, Рейтинг.
В системном промте в запросе указываем, какие данные нам нужны.
Все полученные значения будем сохранять в текстовый файл в виде JSON.
Вот результат парсинга:
Все библиотеки встроенные, за исключением Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json)
Можно настроить парсер на более сложные сайты, с переходом по страницам и другими подобными фишками.
Будущее за ИИ.
Всем успехов!
Приветствую всех.
Этой статьей начинаю небольшой цикл об использовании нейросетей/ИИ агентов в автоматизации.
Итак, что такое ИИ-агенты, зачем и для чего они нужны и самое главное - как их использовать! Давайте разбираться!
Справка:
ИИ-агент – это продвинутая программа, оборачивающая большую языковую модель (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.
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.
Вот результат парсинга:
Все библиотеки встроенные, за исключением Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json)
Можно настроить парсер на более сложные сайты, с переходом по страницам и другими подобными фишками.
Будущее за ИИ.
Всем успехов!
Вложения
-
11,7 КБ Просмотры: 8