Scrapling
D4Vinci/ScraplingScrapling — адаптивный Python-фреймворк для веб-скрапинга с обходом антибот-систем (Cloudflare и др.), автоматическим восстановлением селекторов при изменении структуры сайта, поддержкой параллельных краулов и ротацией прокси. Включает MCP-сервер для интеграции с AI-агентами.
Подключение
pip install scraplingREADME
Scrapling — адаптивный фреймворк для веб-скрапинга, который справляется со всем: от одиночного запроса до полноценного краулинга.
Парсер обучается на изменениях сайта и автоматически находит элементы при обновлении страниц. Fetcher-ы обходят антибот-системы вроде Cloudflare Turnstile прямо из коробки. Фреймворк пауков позволяет масштабироваться до параллельных многосессионных краулов с паузой/возобновлением и автоматической ротацией прокси — всё в нескольких строках Python. Одна библиотека, никаких компромиссов.
Молниеносный краулинг со статистикой в реальном времени и стримингом. Создано веб-скраперами для веб-скраперов и обычных пользователей — здесь найдётся что-то для каждого.
from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
StealthyFetcher.adaptive = True
p = StealthyFetcher.fetch('https://example.com', headless=True, network_idle=True) # Fetch website under the radar!
products = p.css('.product', auto_save=True) # Scrape data that survives website design changes!
products = p.css('.product', adaptive=True) # Later, if the website structure changes, pass `adaptive=True` to find them!Или масштабируйтесь до полноценного краулинга:
from scrapling.spiders import Spider, Response
class MySpider(Spider):
name = "demo"
start_urls = ["https://example.com/"]
async def parse(self, response: Response):
for item in response.css('.product'):
yield {"title": item.css('h2::text').get()}
MySpider().start()