Вебскрапінг з LLaMA 3: перетворіть будь-який сайт на структурований JSON (посібник 2026)
With LLaMA 3, я можу легко перетворювати неохайний HTML на чистий, структурований JSON. Це розумніший і надійніший спосіб збирати дані, який робить весь процес плавнішим і менш схильним до помилок. Давайте розберемо, як це працює!
Що таке LLaMA 3?
LLaMA 3, що розшифровується як Велика мовна модель Meta AI, є третьою ітерацією відкритої мовної моделі від Meta, випущеною у квітні 2024 року. Це велика мовна модель, що підтримує різні завдання, від генерації тексту до розуміння природної мови. Моделі LLaMA 3 доступні в різних розмірах, починаючи від від 8 мільярдів параметрів (8B) до 405 мільярдів параметрів (405B). Ці моделі розроблено так, щоб вони ефективно працювали на різних апаратних конфігураціях, роблячи їх доступними для багатьох розробників і компаній.
На відміну від традиційних методів скрапінгу, що спираються на заздалегідь визначені селектори, LLaMA 3 розуміє вміст у контексті. Це означає, що вона може інтелектуально витягувати інформацію з вебсторінок, навіть якщо макет змінюється або сайт має складний динамічно завантажуваний контент.
Чому варто використовувати LLaMA 3 для вебскрапінгу?
Вебскрапінг з часом став складнішим через кілька чинників:
- Dynamic Content: Багато сайтів тепер завантажують вміст динамічно за допомогою JavaScript. Через це традиційні методи скрапінгу, що покладаються на статичні HTML-селектори, стають неефективними.
- Website Layout ChangesВебсторінки часто оновлюють свій дизайн, через що ламаються скрипти вебскрапінгу, які залежать від конкретного розташування елементів.
- Anti-Bot Protections: Багато вебсайтів запровадили антибот-захист, такий як CAPTCHA, блокування IP-адрес і захист на основі JavaScript, що ускладнює збирання даних без блокування.
Традиційні методи скрапінгу, як-от використання XPath або CSS-селекторів, є крихкими, тому що вони ламаються, коли змінюється макет вебсайту. Однак LLaMA 3 пропонує новий спосіб розв’язання цих викликів. Вона може аналізувати вміст у контексті, через що менш імовірно, що вона зламається через незначні зміни в макеті вебсайту.
Деякі з переваг використання LLaMA 3 для вебскрапінгу включають:
- Flexibility: LLaMA 3 може адаптуватися до різних структур сайтів, що робить його ідеальним для вебскрапінгу динамічних і часто змінюваних сайтів.
- Efficiency: Перетворюючи сирий HTML на чисті, структуровані дані у форматі JSON, LLaMA 3 спрощує зберігання та обробку зібраної інформації.
- Reliability: Контекстне розуміння вмісту моделлю гарантує, що вона витягує лише релевантні дані, зменшуючи ризик помилок.
🔗 Підсиліть вебскрапінг за допомогою MCP від Bright Data
Щоб отримувати надійніші та актуальніші результати, розгляньте інтеграцію Bright Data’s Model Context Protocol (MCP) із вашим налаштуванням LLaMA 3. MCP надає доступ до вебу в реальному часі, обходить геообмеження та захист від ботів і гарантує, що ваша модель обробляє найсвіжіші доступні дані. Це особливо корисно під час вебскрапінгу динамічних або захищених сайтів — роблячи ваш пайплайн надійнішим і точнішим без додаткової складності.
Примітка: я не пов’язаний із Bright Data.
Налаштування вашого середовища для LLaMA 3
Перш ніж занурюватися в процес вебскрапінгу, потрібно підготувати кілька передумов:
- Python 3: Переконайтеся, що у вашій системі встановлено Python 3. Це керівництво припускає, що ви маєте базові знання Python.
- Operating System Compatibility: LLaMA 3 працює на macOS (Big Sur або новіша), Linux і Windows (10 або новіша).
- Hardware Resources: Залежно від вибраного розміру моделі вам знадобиться достатньо ОЗП і дискового простору. Наприклад, LLaMA 3.1 з 8 мільярдами параметрів потребує приблизно 6–8 ГБ ОЗП і 4,9 ГБ дискового простору.
Після того як ваше середовище буде готове, вам потрібно буде встановити Ollama, інструмент для завантаження, налаштування та локального запуску моделей LLaMA.
Installing Ollama
Ollama спрощує завантаження та налаштування моделей LLaMA 3. Щоб почати:
- Відвідайте офіційний сайт Ollama і завантажте застосунок, сумісний із вашою операційною системою.
- Дотримуйтеся інструкцій зі встановлення, наведених на вебсайті.
Після встановлення Ollama вам потрібно буде вибрати правильну модель залежно від вашого обладнання та сценарію використання. Для більшості користувачів llama3.1:8b модель ідеально підходить, оскільки вона забезпечує вдалий баланс між продуктивністю та вимогами до ресурсів.
Локальний запуск LLaMA 3
Після того як ви встановили Ollama, можете почати використовувати LLaMA 3, виконавши такі кроки:
- Завантажити модель: Відкрийте термінал і виконайте наведену нижче команду, щоб завантажити модель LLaMA 3.1:
ollama run llama3.1:8b
Ця команда завантажить модель і запустить інтерактивний запит, у якому ви зможете протестувати модель, надсилаючи такі запити:
>>> who are you?
Я LLaMA, AI-асистент, розроблений Meta AI…
- Запустіть сервер Ollama: Щоб запустити модель LLaMA як локальний сервер, використайте таку команду:
ollama serve
Це запускає сервер на http://127.0.0.1:11434/, до якого ви можете отримати доступ із браузера, щоб переконатися, що сервер працює.
Створення вебскрапера за допомогою LLaMA 3
Тепер, коли LLaMA 3 налаштовано й запущено, пройдемо процес створення простого вебскрапера для вилучення інформації про товари з e-commerce сайту на кшталт Amazon.
Вебскрапер виконуватиме багатоступеневий робочий процес:
- Browser Automation: Використовуйте Selenium, щоб завантажити сторінку й відрендерити динамічний вміст.
- HTML Extraction: Визначте контейнер із даними про товар на вебсторінці.
- Markdown Conversion: Перетворіть HTML-вміст у Markdown для кращої обробки LLaMA.
- Витяг даних за допомогою LLaMA: Використайте LLaMA, щоб витягнути структуровані дані та перетворити їх у формат JSON.
- Output Handling: Збережіть витягнуті дані у JSON-файл для подальшого аналізу.
Крок 1: Встановіть потрібні бібліотеки
Щоб почати, встановіть необхідні бібліотеки Python:
pip install requests selenium webdriver-manager markdownify
- requests: Дозволяє надсилати HTTP-запити до моделі LLaMA.
- selenium: Автоматизує взаємодію з браузером, що особливо корисно для сайтів із динамічним вмістом.
- webdriver-manager: Допомагає керувати правильною версією ChromeDriver, потрібною для Selenium.
- markdownify: Перетворює HTML-вміст у формат Markdown для зручнішої обробки LLaMA.
Крок 2: Налаштуйте Selenium WebDriver
Далі потрібно налаштувати безголовий браузер за допомогою Selenium. Це дає змогу взаємодіяти з сайтами програмно, без відкриття візуального браузера.
Ось як ініціалізувати безголовний браузер за допомогою Chrome:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument(" - headless")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
Крок 3: Витягніть HTML зі сторінки продукту Amazon
Тепер вам потрібно витягнути HTML-вміст сторінки товару. На сторінках товарів Amazon інформація про товар міститься в контейнері, до якого можна звернутися за допомогою Selenium:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 15)
product_container = wait.until(EC.presence_of_element_located((By.ID, "ppd")))
page_html = product_container.get_attribute("outerHTML")
Крок 4: Перетворення HTML у Markdown
Перетворіть витягнутий HTML на Markdown, щоб оптимізувати обробку LLaMA. Markdown — це чистіший і ефективніший формат для обробки великими мовними моделями.
from markdownify import markdownify as md
clean_text = md(page_html, heading_style="ATX")
Крок 5: Створіть запит для структурованого вилучення даних
Ключ до успішного вебскрапінгу з LLaMA 3 - це створення правильного промпта. Промпт інструктує LLaMA, які саме дані потрібно витягнути з наданого вмісту.
Ось приклад запиту для витягування відомостей про продукт:
PROMPT = (
"Ви — експерт із вилучення даних про товари Amazon. Ваше завдання — витягувати дані про товари з наданого вмісту. "
"Поверніть ЛИШЕ валідний JSON із ТОЧНО такими полями та форматами:nn"
"{n"
' "title": "string - назва товару",n'
' "price": число - поточна ціна (лише числове значення)",n'
' "original_price": number or null - початкова ціна, якщо доступна,n'
' "discount": число або null - відсоток знижки, якщо доступно,n'
' "rating": число або null - середній рейтинг (шкала 0–5),n'
' "review_count": number or null - загальна кількість відгуків,n'
' "description": "string - основний опис товару",n'
' "features": ["string"] - list of bullet point features,n'
' "availability": "string - статус наявності",n'
' "asin": "string - 10-character Amazon ID"n'
"}nn"
"Return ONLY the JSON without any додатковий текст."
)
Крок 6: Викличте API LLaMA
Коли Markdown-контент буде готовий, надішліть його до LLaMA API, щоб витягнути структуровані дані. Для надсилання запиту ви використаєте наведений нижче Python-код:
import requests
import json
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": "llama3.1:8b",
"prompt": f"{PROMPT}nn{clean_text}",
"stream": False,
"format": "json",
"options": {
"temperature": 0.1,
"num_ctx": 12000,
},
},
timeout=250,
)
raw_output = response.json()["response"].strip()
product_data = json.loads(raw_output)
Крок 7: Збережіть результати
Наостанок збережіть витягнуті дані про продукт у JSON-файл:
with open("product_data.json", "w", encoding="utf-8") as f:
json.dump(product_data, f, indent=2, ensure_ascii=False)
Conclusion
Використання LLaMA 3 для вебскрапінгу є справжнім проривом. Воно дає змогу витягувати дані з вебсайтів ефективніше та надійніше, ніж традиційні методи скрапінгу. Ви можете зберігати й обробляти дані, перетворюючи необроблений HTML на структурований JSON. Незалежно від того, чи ви виконуєте вебскрапінг деталей товарів на сайтах електронної комерції на кшталт Amazon, чи витягуєте дані з інших складних вебсайтів, LLaMA 3 пропонує гнучке й потужне рішення, щоб спростити та підвищити стійкість вебскрапінгу.

