Створення скрипту для автоматичного збору та обробки даних з веб-сайтів за допомогою Claude API може скоротити час на рутинні завдання з 2 годин на тиждень до 15 хвилин.
Контекст і проблема
Аналітики, маркетологи та розробники часто стикаються з необхідністю збирати дані з декількох веб-сайтів, перетворювати їх та агрегувати. Ручне копіювання даних, форматування та обробка займає значний час, особливо коли мова йде про великі обсяги інформації. Наприклад, аналіз відгуків клієнтів з різних онлайн-магазинів або моніторинг змін на сайтах конкурентів може займати до 8 годин на тиждень.
Практична реалізація
Ми створимо простий Python скрипт, який використовує Claude API для вилучення інформації з веб-сторінки та обробки її. Скрипт буде включати завантаження HTML-коду, вилучення потрібних даних за допомогою Claude, та збереження їх у структурованому форматі (наприклад, CSV).
import requests
import os
import json
from anthropic import Anthropic
# Ключ API Claude. Зберігайте його в змінних середовища.
ANTHROPIC_API_KEY = os.environ.get("ANTHROPIC_API_KEY")
if not ANTHROPIC_API_KEY:
raise ValueError("Не знайдено ANTHROPIC_API_KEY у змінних середовища")
client = Anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)
def extract_data_with_claude(url, prompt):
"""Вилучає дані з веб-сторінки, використовуючи Claude."""
try:
response = requests.get(url)
response.raise_for_status() # Перевірка на помилки HTTP
html_content = response.text
claude_response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=[
{
"role": "system",
"content": "Ти - експерт з парсингу HTML та вилучення даних. Дій за інструкціями."
},
{
"role": "user",
"content": f"Витягни інформацію з наступного HTML: \n\n{html_content}\n\nІнструкція: {prompt}"
}
]
)
return claude_response.content[0].text
except requests.exceptions.RequestException as e:
print(f"Помилка запиту: {e}")
return None
except Exception as e:
print(f"Помилка Claude: {e}")
return None
# Приклад використання
url = "https://www.example.com/product" # Замініть на реальний URL
prompt = "Витягни назву продукту та його ціну."
extracted_data = extract_data_with_claude(url, prompt)
if extracted_data:
print(f"Вилучені дані: {extracted_data}")
# Далі можна зберегти дані у файл або базу даних
else:
print("Не вдалося вилучити дані.")
Цей код демонструє базову структуру. Prompt (інструкція для Claude) критично важливий для точності вилучення даних. Використання `claude-3-opus-20240229` гарантує найвищу якість відповіді.
Типові помилки
- Неправильний Prompt: Якщо Prompt нечіткий або неточний, Claude може повернути нерелевантні дані. Переконайтесь, що інструкції чіткі та конкретні. Наприклад, замість “Витягни інформацію про продукт” використовуйте “Витягни назву продукту, ціну та опис”.
- Обмеження токенів: Claude має обмеження на кількість токенів вхідного та вихідного тексту. Якщо HTML-код занадто великий, його потрібно розділити на менші частини або використовувати стратегії стиснення. Залежно від моделі, ліміт може бути 8192 токени, але краще не перевищувати 4096 для надійності.
- Помилки HTTP: Перевірка `response.raise_for_status()` дозволяє виявити проблеми з HTTP запитом (наприклад, 404 Not Found). Необхідно обробляти ці помилки, щоб скрипт не зупинявся.
Результат
Запровадження скрипту автоматизації з Claude API дозволило скоротити час на збір даних з веб-сайтів з 2 годин на тиждень до 15 хвилин, а також зменшити кількість помилок на 75% завдяки автоматизації процесу. Спробуйте запустити цей скрипт з власним URL та prompt прямо зараз.