Back to Scrapling

README RU

docs/README_RU.md

0.4.739.1 KB
Original Source
<!-- mcp-name: io.github.D4Vinci/Scrapling --> <h1 align="center"> <a href="https://scrapling.readthedocs.io"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/D4Vinci/Scrapling/main/docs/assets/cover_dark.svg?sanitize=true">
    </picture>
</a>


<small>Effortless Web Scraping for the Modern Web</small>
</h1> <p align="center"> <a href="https://github.com/D4Vinci/Scrapling/actions/workflows/tests.yml" alt="Tests"> </a> <a href="https://badge.fury.io/py/Scrapling" alt="PyPI version"> </a> <a href="https://clickpy.clickhouse.com/dashboard/scrapling" rel="nofollow"></a> <a href="https://github.com/D4Vinci/Scrapling/tree/main/agent-skill" alt="AI Agent Skill directory"> </a> <a href="https://clawhub.ai/D4Vinci/scrapling-official" alt="OpenClaw Skill"> </a>
<a href="https://discord.gg/EMgGbDceNQ" alt="Discord" target="_blank">
  
</a>
<a href="https://x.com/Scrapling_dev" alt="X (formerly Twitter)">
  
</a>


<a href="https://pypi.org/project/scrapling/" alt="Supported Python versions">
    </a>
</p> <p align="center"> <a href="https://scrapling.readthedocs.io/en/latest/parsing/selection.html"><strong>Методы выбора</strong></a> &middot; <a href="https://scrapling.readthedocs.io/en/latest/fetching/choosing.html"><strong>Выбор Fetcher</strong></a> &middot; <a href="https://scrapling.readthedocs.io/en/latest/spiders/architecture.html"><strong>Пауки</strong></a> &middot; <a href="https://scrapling.readthedocs.io/en/latest/spiders/proxy-blocking.html"><strong>Ротация прокси</strong></a> &middot; <a href="https://scrapling.readthedocs.io/en/latest/cli/overview.html"><strong>CLI</strong></a> &middot; <a href="https://scrapling.readthedocs.io/en/latest/ai/mcp-server.html"><strong>Режим MCP</strong></a> </p>

Scrapling - это адаптивный фреймворк для Web Scraping, который берёт на себя всё: от одного запроса до полномасштабного обхода сайтов.

Его парсер учится на изменениях сайтов и автоматически перемещает ваши элементы при обновлении страниц. Его Fetcher'ы обходят анти-бот системы вроде Cloudflare Turnstile прямо из коробки. А его Spider-фреймворк позволяет масштабироваться до параллельных, многосессионных обходов с Pause & Resume и автоматической ротацией Proxy - и всё это в нескольких строках Python. Одна библиотека, без компромиссов.

Молниеносно быстрые обходы с отслеживанием статистики в реальном времени и Streaming. Создано веб-скраперами для веб-скраперов и обычных пользователей - здесь есть что-то для каждого.

python
from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
StealthyFetcher.adaptive = True
p = StealthyFetcher.fetch('https://example.com', headless=True, network_idle=True)  # Загрузите сайт незаметно!
products = p.css('.product', auto_save=True)                                        # Скрапьте данные, которые переживут изменения дизайна сайта!
products = p.css('.product', adaptive=True)                                         # Позже, если структура сайта изменится, передайте `adaptive=True`, чтобы найти их!

Или масштабируйте до полного обхода

python
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()
<p align="center"> <a href="https://dataimpulse.com/?utm_source=scrapling&utm_medium=banner&utm_campaign=scrapling" target="_blank" style="display:flex; justify-content:center; padding:4px 0;">
</a>
</p>

Платиновые спонсоры

<table> <tr> <td width="200"> <a href="https://hypersolutions.co/?utm_source=github&utm_medium=readme&utm_campaign=scrapling" target="_blank" title="Bot Protection Bypass API for Akamai, DataDome, Incapsula & Kasada">
  </a>
</td>
<td> Scrapling справляется с Cloudflare Turnstile. Для защиты корпоративного уровня
  <a href="https://hypersolutions.co?utm_source=github&utm_medium=readme&utm_campaign=scrapling">
    <b>Hyper Solutions</b>
  </a> предоставляет API-эндпоинты, генерирующие валидные antibot-токены для <b>Akamai</b>, <b>DataDome</b>, <b>Kasada</b> и <b>Incapsula</b> . Простые API-вызовы, без автоматизации браузера.
</td>
</tr> <tr> <td width="200"> <a href="https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=d4vinci-scrapling" target="_blank" title="Evomi is your Swiss Quality Proxy Provider, starting at $0.49/GB">
  </a>
</td>
<td>
  <a href="https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=d4vinci-scrapling">
    <b>Evomi</b>
  </a>: резидентные прокси от $0.49/ГБ. Браузер для скрапинга с полностью подменённым Chromium, резидентными IP, автоматическим решением CAPTCHA и обходом анти-бот систем. </br>
  <b>Scraper API для получения результатов без лишних сложностей. Доступны интеграции с MCP и N8N.</b>
</td>
</tr> <tr> <td width="200"> <a href="https://tikhub.io/?utm_source=github.com/D4Vinci/Scrapling&utm_medium=marketing_social&utm_campaign=retargeting&utm_content=carousel_ad" target="_blank" title="Unlock the Power of Social Media Data & AI">
  </a>
</td>
<td>
  <a href="https://tikhub.io/?utm_source=github.com/D4Vinci/Scrapling&utm_medium=marketing_social&utm_campaign=retargeting&utm_content=carousel_ad" target="_blank">TikHub.io</a> предоставляет более 900 стабильных API на 16+ платформах, включая TikTok, X, YouTube и Instagram, с более чем 40 млн наборов данных. 

Также предлагает <a href="https://ai.tikhub.io/?ref=KarimShoair" target="_blank">AI-модели со скидкой</a> - Claude, GPT, GEMINI и другие со скидкой до 71%. </td>

</tr> <tr> <td width="200"> <a href="https://www.nsocks.com/?keyword=2p67aivg" target="_blank" title="Scalable Web Data Access for AI Applications">
  </a>
</td>
<td>
<a href="https://www.nsocks.com/?keyword=2p67aivg" target="_blank">Nsocks</a> предоставляет быстрые резидентные и ISP прокси для разработчиков и скраперов. Глобальное покрытие IP, высокая анонимность, умная ротация и надёжная производительность для автоматизации и извлечения данных. Используйте <a href="https://www.xcrawl.com/?keyword=2p67aivg" target="_blank">Xcrawl</a> для упрощения масштабного веб-краулинга.
</td>
</tr> <tr> <td width="200"> <a href="https://petrosky.io/d4vinci" target="_blank" title="PetroSky delivers cutting-edge VPS hosting.">
  </a>
</td>
<td>
Закройте ноутбук. Ваши скраперы продолжают работать. 

<a href="https://petrosky.io/d4vinci" target="_blank">PetroSky VPS</a> - облачные серверы для непрерывной автоматизации. Машины на Windows и Linux с полным контролем. От €6,99/мес.
</td>
</tr> <tr> <td width="200"> <a href="https://substack.thewebscraping.club/p/scrapling-hands-on-guide?utm_source=github&utm_medium=repo&utm_campaign=scrapling" target="_blank" title="The #1 newsletter dedicated to Web Scraping">
  </a>
</td>
<td>
Прочитайте полный обзор <a href="https://substack.thewebscraping.club/p/scrapling-hands-on-guide?utm_source=github&utm_medium=repo&utm_campaign=scrapling" target="_blank">Scrapling на The Web Scraping Club</a> (ноябрь 2025) - рассылка №1, посвящённая веб-скрейпингу.
</td>
</tr> <tr> <td width="200"> <a href="http://mangoproxy.com/?utm_source=D4Vinci&utm_medium=GitHub&utm_campaign=D4Vinci" target="_blank" title="Proxies You Can Rely On: Residential, Server, and Mobile">
  </a>
</td>
<td>
<a href="http://mangoproxy.com/?utm_source=D4Vinci&utm_medium=GitHub&utm_campaign=D4Vinci" target="_blank">Стабильные прокси</a> для скрапинга, автоматизации и мультиаккаунтинга. Чистые IP, быстрый отклик и надёжная работа под нагрузкой. Созданы для масштабируемых рабочих процессов.
</td>
</tr> <tr> <td width="200"> <a href="https://www.swiftproxy.net/?ref=D4Vinci" target="_blank" title="Scalable Solutions for Web Data Access">
  </a>
</td>
<td>
<a href="https://www.swiftproxy.net/?ref=D4Vinci" target="_blank">Swiftproxy</a> предоставляет масштабируемые резидентные прокси с более чем 80 млн IP в 195+ странах, обеспечивая быстрые и надёжные соединения, автоматическую ротацию и высокую устойчивость к блокировкам. Доступна бесплатная пробная версия.
</td>
</tr> </table>

<i><sub>Хотите показать здесь свою рекламу? Нажмите здесь</sub></i>

Спонсоры

<!-- sponsors -->

<a href="https://serpapi.com/?utm_source=scrapling" target="_blank" title="Scrape Google and other search engines with SerpApi"></a> <a href="https://visit.decodo.com/Dy6W0b" target="_blank" title="Try the Most Efficient Residential Proxies for Free"></a> <a href="https://hasdata.com/?utm_source=github&utm_medium=banner&utm_campaign=D4Vinci" target="_blank" title="The web scraping service that actually beats anti-bot systems!"></a> <a href="https://proxyempire.io/?ref=scrapling&utm_source=scrapling" target="_blank" title="Collect The Data Your Project Needs with the Best Residential Proxies"></a> <a href="https://www.webshare.io/?referral_code=48r2m2cd5uz1" target="_blank" title="The Most Reliable Proxy with Unparalleled Performance"></a> <a href="https://www.crawleo.dev/?utm_source=github&utm_medium=sponsor&utm_campaign=scrapling" target="_blank" title="Supercharge your AI with Real-Time Web Intelligence"></a> <a href="https://www.rapidproxy.io/?ref=d4v" target="_blank" title="Affordable Access to the Proxy World – bypass CAPTCHAs blocks, and avoid additional costs."></a>

<!-- /sponsors -->

<i><sub>Хотите показать здесь свою рекламу? Нажмите здесь и выберите подходящий вам уровень!</sub></i>


Ключевые особенности

Spider'ы - полноценный фреймворк для обхода сайтов

  • 🕷️ Scrapy-подобный Spider API: Определяйте Spider'ов с start_urls, async parse callback'ами и объектами Request/Response.
  • Параллельный обход: Настраиваемые лимиты параллелизма, ограничение скорости по домену и задержки загрузки.
  • 🔄 Поддержка нескольких сессий: Единый интерфейс для HTTP-запросов и скрытных headless-браузеров в одном Spider - маршрутизируйте запросы к разным сессиям по ID.
  • 💾 Pause & Resume: Persistence обхода на основе Checkpoint'ов. Нажмите Ctrl+C для мягкой остановки; перезапустите, чтобы продолжить с того места, где вы остановились.
  • 📡 Режим Streaming: Стримьте извлечённые элементы по мере их поступления через async for item in spider.stream() со статистикой в реальном времени - идеально для UI, конвейеров и длительных обходов.
  • 🛡️ Обнаружение заблокированных запросов: Автоматическое обнаружение и повторная отправка заблокированных запросов с настраиваемой логикой.
  • 🤖 Соответствие robots.txt: Опциональный флаг robots_txt_obey, который учитывает директивы Disallow, Crawl-delay и Request-rate с кэшированием по доменам.
  • 🧪 Режим разработки: Кэшируйте ответы на диск при первом запуске и воспроизводите их при последующих запусках - итерируйте над логикой parse(), не отправляя повторные запросы к целевым серверам.
  • 📦 Встроенный экспорт: Экспортируйте результаты через хуки и собственный конвейер или встроенный JSON/JSONL с result.items.to_json() / result.items.to_jsonl() соответственно.

Продвинутая загрузка сайтов с поддержкой Session

  • HTTP-запросы: Быстрые и скрытные HTTP-запросы с классом Fetcher. Может имитировать TLS fingerprint браузера, заголовки и использовать HTTP/3.
  • Динамическая загрузка: Загрузка динамических сайтов с полной автоматизацией браузера через класс DynamicFetcher, поддерживающий Chromium от Playwright и Google Chrome.
  • Обход анти-ботов: Расширенные возможности скрытности с StealthyFetcher и подмену fingerprint'ов. Может легко обойти все типы Cloudflare Turnstile/Interstitial с помощью автоматизации.
  • Управление сессиями: Поддержка постоянных сессий с классами FetcherSession, StealthySession и DynamicSession для управления cookie и состоянием между запросами.
  • Ротация Proxy: Встроенный ProxyRotator с циклической или пользовательскими стратегиями для всех типов сессий, а также переопределение Proxy для каждого запроса.
  • Блокировка доменов и рекламы: Блокируйте запросы к определённым доменам (и их поддоменам) или включите встроенную блокировку рекламы (~3 500 известных рекламных/трекерных доменов) в браузерных Fetcher'ах.
  • Защита от утечки DNS: Опциональная поддержка DNS-over-HTTPS для маршрутизации DNS-запросов через Cloudflare DoH, предотвращая утечку DNS при использовании прокси.
  • Поддержка async: Полная async-поддержка во всех Fetcher'ах и выделенных async-классах сессий.

Адаптивный скрапинг и интеграция с ИИ

  • 🔄 Умное отслеживание элементов: Перемещайте элементы после изменений сайта с помощью интеллектуальных алгоритмов подобия.
  • 🎯 Умный гибкий выбор: CSS-селекторы, XPath-селекторы, поиск на основе фильтров, текстовый поиск, поиск по регулярным выражениям и многое другое.
  • 🔍 Поиск похожих элементов: Автоматически находите элементы, похожие на найденные.
  • 🤖 MCP-сервер для использования с ИИ: Встроенный MCP-сервер для Web Scraping с помощью ИИ и извлечения данных. MCP-сервер обладает мощными пользовательскими возможностями, которые используют Scrapling для извлечения целевого контента перед передачей его ИИ (Claude/Cursor/и т.д.), тем самым ускоряя операции и снижая затраты за счёт минимизации использования токенов. (демо-видео)

Высокопроизводительная и проверенная в боях архитектура

  • 🚀 Молниеносная скорость: Оптимизированная производительность, превосходящая большинство Python-библиотек для скрапинга.
  • 🔋 Эффективное использование памяти: Оптимизированные структуры данных и ленивая загрузка для минимального потребления памяти.
  • Быстрая сериализация JSON: В 10 раз быстрее стандартной библиотеки.
  • 🏗️ Проверено в боях: Scrapling имеет не только 92% покрытия тестами и полное покрытие type hints, но и ежедневно использовался сотнями веб-скраперов в течение последнего года.

Удобный для разработчиков/веб-скраперов опыт

  • 🎯 Интерактивная Web Scraping Shell: Опциональная встроенная IPython-оболочка с интеграцией Scrapling, ярлыками и новыми инструментами для ускорения разработки скриптов Web Scraping, такими как преобразование curl-запросов в запросы Scrapling и просмотр результатов запросов в браузере.
  • 🚀 Используйте прямо из терминала: При желании вы можете использовать Scrapling для скрапинга URL без написания ни одной строки кода!
  • 🛠️ Богатый API навигации: Расширенный обход DOM с методами навигации по родителям, братьям и детям.
  • 🧬 Улучшенная обработка текста: Встроенные регулярные выражения, методы очистки и оптимизированные операции со строками.
  • 📝 Автоматическая генерация селекторов: Генерация надёжных CSS/XPath-селекторов для любого элемента.
  • 🔌 Знакомый API: Похож на Scrapy/BeautifulSoup с теми же псевдоэлементами, используемыми в Scrapy/Parsel.
  • 📘 Полное покрытие типами: Полные type hints для отличной поддержки IDE и автодополнения кода. Вся кодовая база автоматически проверяется PyRight и MyPy при каждом изменении.
  • 🔋 Готовый Docker-образ: С каждым релизом автоматически создаётся и публикуется Docker-образ, содержащий все браузеры.

Начало работы

Давайте кратко покажем, на что способен Scrapling, без глубокого погружения.

Базовое использование

HTTP-запросы с поддержкой Session

python
from scrapling.fetchers import Fetcher, FetcherSession

with FetcherSession(impersonate='chrome') as session:  # Используйте последнюю версию TLS fingerprint Chrome
    page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
    quotes = page.css('.quote .text::text').getall()

# Или используйте одноразовые запросы
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()

Расширенный режим скрытности

python
from scrapling.fetchers import StealthyFetcher, StealthySession

with StealthySession(headless=True, solve_cloudflare=True) as session:  # Держите браузер открытым, пока не закончите
    page = session.fetch('https://nopecha.com/demo/cloudflare', google_search=False)
    data = page.css('#padded_content a').getall()

# Или используйте стиль одноразового запроса - открывает браузер для этого запроса, затем закрывает его после завершения
page = StealthyFetcher.fetch('https://nopecha.com/demo/cloudflare')
data = page.css('#padded_content a').getall()

Полная автоматизация браузера

python
from scrapling.fetchers import DynamicFetcher, DynamicSession

with DynamicSession(headless=True, disable_resources=False, network_idle=True) as session:  # Держите браузер открытым, пока не закончите
    page = session.fetch('https://quotes.toscrape.com/', load_dom=False)
    data = page.xpath('//span[@class="text"]/text()').getall()  # XPath-селектор, если вы предпочитаете его

# Или используйте стиль одноразового запроса - открывает браузер для этого запроса, затем закрывает его после завершения
page = DynamicFetcher.fetch('https://quotes.toscrape.com/')
data = page.css('.quote .text::text').getall()

Spider'ы

Создавайте полноценные обходчики с параллельными запросами, несколькими типами сессий и Pause & Resume:

python
from scrapling.spiders import Spider, Request, Response

class QuotesSpider(Spider):
    name = "quotes"
    start_urls = ["https://quotes.toscrape.com/"]
    concurrent_requests = 10

    async def parse(self, response: Response):
        for quote in response.css('.quote'):
            yield {
                "text": quote.css('.text::text').get(),
                "author": quote.css('.author::text').get(),
            }

        next_page = response.css('.next a')
        if next_page:
            yield response.follow(next_page[0].attrib['href'])

result = QuotesSpider().start()
print(f"Извлечено {len(result.items)} цитат")
result.items.to_json("quotes.json")

Используйте несколько типов сессий в одном Spider:

python
from scrapling.spiders import Spider, Request, Response
from scrapling.fetchers import FetcherSession, AsyncStealthySession

class MultiSessionSpider(Spider):
    name = "multi"
    start_urls = ["https://example.com/"]

    def configure_sessions(self, manager):
        manager.add("fast", FetcherSession(impersonate="chrome"))
        manager.add("stealth", AsyncStealthySession(headless=True), lazy=True)

    async def parse(self, response: Response):
        for link in response.css('a::attr(href)').getall():
            # Направляйте защищённые страницы через stealth-сессию
            if "protected" in link:
                yield Request(link, sid="stealth")
            else:
                yield Request(link, sid="fast", callback=self.parse)  # явный callback

Приостанавливайте и возобновляйте длительные обходы с помощью Checkpoint'ов, запуская Spider следующим образом:

python
QuotesSpider(crawldir="./crawl_data").start()

Нажмите Ctrl+C для мягкой остановки - прогресс сохраняется автоматически. Позже, когда вы снова запустите Spider, передайте тот же crawldir, и он продолжит с того места, где остановился.

Продвинутый парсинг и навигация

python
from scrapling.fetchers import Fetcher

# Богатый выбор элементов и навигация
page = Fetcher.get('https://quotes.toscrape.com/')

# Получение цитат различными методами выбора
quotes = page.css('.quote')  # CSS-селектор
quotes = page.xpath('//div[@class="quote"]')  # XPath
quotes = page.find_all('div', {'class': 'quote'})  # В стиле BeautifulSoup
# То же самое, что
quotes = page.find_all('div', class_='quote')
quotes = page.find_all(['div'], class_='quote')
quotes = page.find_all(class_='quote')  # и так далее...
# Найти элемент по текстовому содержимому
quotes = page.find_by_text('quote', tag='div')

# Продвинутая навигация
quote_text = page.css('.quote')[0].css('.text::text').get()
quote_text = page.css('.quote').css('.text::text').getall()  # Цепочка селекторов
first_quote = page.css('.quote')[0]
author = first_quote.next_sibling.css('.author::text')
parent_container = first_quote.parent

# Связи элементов и подобие
similar_elements = first_quote.find_similar()
below_elements = first_quote.below_elements()

Вы можете использовать парсер напрямую, если не хотите загружать сайты, как показано ниже:

python
from scrapling.parser import Selector

page = Selector("<html>...</html>")

И он работает точно так же!

Примеры async Session

python
import asyncio
from scrapling.fetchers import FetcherSession, AsyncStealthySession, AsyncDynamicSession

async with FetcherSession(http3=True) as session:  # `FetcherSession` контекстно-осведомлён и может работать как в sync, так и в async-режимах
    page1 = session.get('https://quotes.toscrape.com/')
    page2 = session.get('https://quotes.toscrape.com/', impersonate='firefox135')

# Использование async-сессии
async with AsyncStealthySession(max_pages=2) as session:
    tasks = []
    urls = ['https://example.com/page1', 'https://example.com/page2']

    for url in urls:
        task = session.fetch(url)
        tasks.append(task)

    print(session.get_pool_stats())  # Опционально - статус пула вкладок браузера (занят/свободен/ошибка)
    results = await asyncio.gather(*tasks)
    print(session.get_pool_stats())

CLI и интерактивная Shell

Scrapling включает мощный интерфейс командной строки:

Запустить интерактивную Web Scraping Shell

bash
scrapling shell

Извлечь страницы в файл напрямую без программирования (по умолчанию извлекает содержимое внутри тега body). Если выходной файл заканчивается на .txt, будет извлечено текстовое содержимое цели. Если заканчивается на .md, это будет Markdown-представление HTML-содержимого; если заканчивается на .html, это будет само HTML-содержимое.

bash
scrapling extract get 'https://example.com' content.md
scrapling extract get 'https://example.com' content.txt --css-selector '#fromSkipToProducts' --impersonate 'chrome'  # Все элементы, соответствующие CSS-селектору '#fromSkipToProducts'
scrapling extract fetch 'https://example.com' content.md --css-selector '#fromSkipToProducts' --no-headless
scrapling extract stealthy-fetch 'https://nopecha.com/demo/cloudflare' captchas.html --css-selector '#padded_content a' --solve-cloudflare

[!NOTE] Есть множество дополнительных возможностей, но мы хотим сохранить эту страницу краткой, включая MCP-сервер и интерактивную Web Scraping Shell. Ознакомьтесь с полной документацией здесь

Тесты производительности

Scrapling не только мощный - он ещё и невероятно быстрый. Следующие тесты производительности сравнивают парсер Scrapling с последними версиями других популярных библиотек.

Тест скорости извлечения текста (5000 вложенных элементов)

#БиблиотекаВремя (мс)vs Scrapling
1Scrapling2.021.0x
2Parsel/Scrapy2.041.01
3Raw Lxml2.541.257
4PyQuery24.17~12x
5Selectolax82.63~41x
6MechanicalSoup1549.71~767.1x
7BS4 with Lxml1584.31~784.3x
8BS4 with html5lib3391.91~1679.1x

Производительность подобия элементов и текстового поиска

Возможности адаптивного поиска элементов Scrapling значительно превосходят альтернативы:

БиблиотекаВремя (мс)vs Scrapling
Scrapling2.391.0x
AutoScraper12.455.209x

Все тесты производительности представляют собой средние значения более 100 запусков. См. benchmarks.py для методологии.

Установка

Scrapling требует Python 3.10 или выше:

bash
pip install scrapling

Эта установка включает только движок парсера и его зависимости, без каких-либо Fetcher'ов или зависимостей командной строки.

Опциональные зависимости

  1. Если вы собираетесь использовать какие-либо из дополнительных возможностей ниже, Fetcher'ы или их классы, вам необходимо установить зависимости Fetcher'ов и браузеров следующим образом:

    bash
    pip install "scrapling[fetchers]"
    
    scrapling install           # normal install
    scrapling install  --force  # force reinstall
    

    Это загрузит все браузеры вместе с их системными зависимостями и зависимостями для манипуляции fingerprint'ами.

    Или вы можете установить их из кода вместо выполнения команды:

    python
    from scrapling.cli import install
    
    install([], standalone_mode=False)          # normal install
    install(["--force"], standalone_mode=False) # force reinstall
    
  2. Дополнительные возможности:

    • Установить функцию MCP-сервера:
      bash
      pip install "scrapling[ai]"
      
    • Установить функции Shell (Web Scraping Shell и команда extract):
      bash
      pip install "scrapling[shell]"
      
    • Установить всё:
      bash
      pip install "scrapling[all]"
      

    Помните, что вам нужно установить зависимости браузеров с помощью scrapling install после любого из этих дополнений (если вы ещё этого не сделали)

Docker

Вы также можете установить Docker-образ со всеми дополнениями и браузерами с помощью следующей команды из DockerHub:

bash
docker pull pyd4vinci/scrapling

Или скачайте его из реестра GitHub:

bash
docker pull ghcr.io/d4vinci/scrapling:latest

Этот образ автоматически создаётся и публикуется с помощью GitHub Actions и основной ветки репозитория.

Участие в разработке

Мы приветствуем участие! Пожалуйста, прочитайте наши руководства по участию в разработке перед началом работы.

Отказ от ответственности

[!CAUTION] Эта библиотека предоставляется только в образовательных и исследовательских целях. Используя эту библиотеку, вы соглашаетесь соблюдать местные и международные законы о скрапинге данных и конфиденциальности. Авторы и участники не несут ответственности за любое неправомерное использование этого программного обеспечения. Всегда уважайте условия обслуживания веб-сайтов и файлы robots.txt.

🎓 Цитирование

Если вы использовали нашу библиотеку в исследовательских целях, пожалуйста, цитируйте нас со следующей ссылкой:

text
  @misc{scrapling,
    author = {Karim Shoair},
    title = {Scrapling},
    year = {2024},
    url = {https://github.com/D4Vinci/Scrapling},
    note = {An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!}
  }

Лицензия

Эта работа лицензирована по лицензии BSD-3-Clause.

Благодарности

Этот проект включает код, адаптированный из:

  • Parsel (лицензия BSD) - Используется для подмодуля translator

<div align="center"><small>Разработано и создано с ❤️ Карим Шоаир.</small></div>