Як створити ШІ-скрапер із Crawl4AI та DeepSeek
У цьому гайді я покажу, як створити скрапер на базі ШІ, використовуючи Crawl4AI and DeepSeek. Crawl4AI — це гнучкий інструмент для вебскрапінгу з відкритим кодом, який працює з AI-моделями. DeepSeek — потужна AI-модель, що витягує структуровані дані з неструктурованих вебсторінок. Поєднання цих двох дасть змогу створити скрапер, який може інтелектуально орієнтуватися на сайтах і витягувати чисті, впорядковані дані — без жодних зусиль!
Що таке Crawl4AI?
Crawl4AI - це вебскрапер з відкритим кодом, готовий до роботи з ШІ, створений для роботи з великими мовними моделями (LLM). На відміну від традиційних скраперів, він не покладається на фіксовані правила парсингу HTML. Натомість він може витягувати структуровані дані за допомогою моделей ШІ на кшталт DeepSeek.
Можливості Crawl4AI:
- Призначено для LLM: Він формує структуровані дані, оптимізовані для навчання ШІ та генерації з доповненням пошуком (RAG).
- Smart Browser Control: Він керує браузерними сесіями, проксі та власними хуками.
- AI-powered Parsing: Використовує евристичні методи для вилучення структурованої інформації.
- Open Source: No API keys required; deployable on Docker and cloud platforms.
Навіщо використовувати DeepSeek із Crawl4AI?
DeepSeek - це передова модель ШІ з відкритим кодом, яка ефективно обробляє текст. У поєднанні з Crawl4AI вона дає змогу динамічно витягувати вміст без жорстко закодованих правил парсингу. Це особливо корисно для:
- Сайти з часто змінною структурою: ШІ автоматично адаптується до нових макетів.
- Витягування неструктурованого вмісту: Моделі ШІ можуть аналізувати вільний текст, дописи в блогах або відгуки клієнтів.
- Обробка різних форматів сторінок: Багато сайтів використовують кілька шаблонів для свого вмісту, з якими традиційним вебскраперам важко впоратися.
Вебскрапінг із Craw4AI та DeepSeek: покроковий посібник
Крок 1: Налаштуйте проєкт
Спочатку створіть новий каталог проєкту та налаштуйте віртуальне середовище.
mkdir ai-scraper
cd ai-scraper
python -m venv venv
Активуйте віртуальне середовище:
Для macOS/Linux:
source venv/bin/activate
For Windows:
venvScriptsactivate
Крок 2: Встановіть Crawl4AI
Встановіть Crawl4AI та його залежності за допомогою pip:
pip install crawl4ai
Запустіть команду налаштування, щоб установити браузерні залежності:
crawl4ai-setup
Ця команда встановлює браузери Playwright і налаштовує базу даних для кешування.
Крок 3: Створіть файл вебскрапера
Create a new file called scraper.py inside the project folder.
touch scraper.py
Open scraper.py in a text editor and add the basic async structure:
import asyncio
async def main():
# Scraper logic will go here
pass
if __name__ == "__main__":
asyncio.run(main())
Крок 4: Налаштуйте вебскрапер
Inside scraper.py, import the necessary Crawl4AI components:
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
Визначте базова функція вебскрапінгу:
async def main():
# Browser settings
browser_config = BrowserConfig(headless=True)
# Crawler settings
crawler_config = CrawlerRunConfig(cache_mode=CacheMode.BYPASS)
# Initialize and run the AI-powered scraper
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(url="https://www.example.com", config=crawler_config)
# Display the extracted data
print(f"Extracted Data:n{result.markdown[:1000]}")
Крок 5: Обробіть обмеження вебсайту
Деякі сайти блокують вебскрапери, виявляючи ботоподібну поведінку. Якщо ваш запит отримує помилку 403 Forbidden, це означає, що сайт заблокував ваш вебскрапер.
Щоб обійти обмеження, можна використати API Web Unlocker від Bright Data. Цей сервіс автоматично керує ротацією проксі та розв’язанням CAPTCHA.
Налаштуйте API Web Unlocker
- Створіть обліковий запис Bright Data.
- Перейдіть до розділу Proxies & Scraping на панелі керування.
- Активуйте Web Unlocker API.
- Скопіюйте облікові дані проксі та збережіть їх у файлі .env:
PROXY_SERVER=https://proxy.brightdata.com:22225
PROXY_USERNAME=your_username
PROXY_PASSWORD=your_password
Інтегруйте проксі у вебскрапер
Modify scraper.py to use the proxy settings:
import os
from dotenv import load_dotenv
load_dotenv()
# Proxy configuration
proxy_config = {
"server": os.getenv("PROXY_SERVER"),
"username": os.getenv("PROXY_USERNAME"),
"password": os.getenv("PROXY_PASSWORD")
}
browser_config = BrowserConfig(headless=True, proxy_config=proxy_config)
Тепер вебскрапер буде спрямовуйте трафік через мережу Bright Data щоб уникнути виявлення.
Робота з обмеженнями сайтів у масштабі
У міру того, як ваш вебскрапер стає складнішим, ви можете зіткнутися з типовими проблемами, як-от блокування IP, CAPTCHA або сторінки з великою кількістю JavaScript. Щоб ваш вебскрапер працював стабільно, розгляньте інструменти, які пропонують ротація проксі, емуляцію браузера та автоматичний обхід антибот-систем.
Наприклад, інтеграція проксі-орієнтованого рішення з вбудованою обробкою CAPTCHA може допомогти зберігати доступ навіть до найзахищеніших сайтів. Це гарантує, що ваш вебскрапер на базі ШІ залишатиметься надійним і масштабованим для широкого спектра цілей. Моє агентство здебільшого використовує Bright Data продукти для вебскрапінгу.
Крок 6: Використовуйте DeepSeek для вилучення даних за допомогою ШІ
Нам потрібен DeepSeek, модель ШІ, яка розуміє й структурує дані, щоб видобувати змістовну інформацію.
Отримайте Groq API Key
- Зареєструйтеся на GroqCloud.
- Створіть API-ключ under API Keys.
- Збережіть це у вашому файлі .env:
LLM_API_TOKEN=your_groq_api_key
LLM_MODEL=groq/deepseek-r1-distill-llama-70b
Визначте схему вилучення даних
Create a models/ directory and a file models/data_schema.py:
from pydantic import BaseModel
class ExtractedData(BaseModel):
title: str
description: str
image_url: str
Use DeepSeek for AI Parsing
Modify scraper.py to include AI-powered extraction:
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from models.data_schema import ExtractedData
extraction_strategy = LLMExtractionStrategy(
provider=os.getenv("LLM_MODEL"),
api_token=os.getenv("LLM_API_TOKEN"),
schema=ExtractedData.model_json_schema(),
extraction_type="schema",
instruction="Витягніть із вмісту заголовок, опис і URL зображення.",
input_format="markdown"
)
crawler_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
extraction_strategy=extraction_strategy
)
Тепер модель ШІ буде аналізувати вміст сторінки та автоматично структурувати дані.
Крок 7: Збережіть витягнуті дані
Modify scraper.py to save the extracted data as a JSON file:
import json
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result = await crawler.arun(url="https://www.example.com", config=crawler_config)
# Parse AI-extracted data
extracted_data = json.loads(result.extracted_content)
# Save to JSON
with open("output.json", "w", encoding="utf-8") as f:
json.dump(extracted_data, f, indent=4)
if __name__ == "__main__":
asyncio.run(main())
Фінальні кроки: запуск вебскрапера
Запустіть вебскрапер за допомогою:
python scraper.py
Це дасть змогу:
- Витягніть дані з вебсайту.
- Використовуйте ШІ, щоб структурувати контент.
- Збережіть дані до JSON-файлу.
Отже, ми щойно створили вебскрапер на базі ШІ з використанням Crawl4AI та DeepSeek. На відміну від звичайних вебскраперів, цей інструмент розумніший і гнучкіший. Він може адаптуватися до змін на вебсайті, обходити захист від ботів і вилучати дані без складних правил парсингу.
Conclusion
З такою конфігурацією ви зможете легко збирати дані навіть із найзахищеніших сайтів. Більше жодних зламаних вебскраперів щоразу, коли сайт оновлюється! Тепер у вас є потужний інструмент, який робить вебскрапінг швидшим, розумнішим і надійнішим.
Спробуйте це на різних сайтах. Успіхів у програмуванні та вебскрапінгу!

