Looking for international version of our service? Go to 2captcha.com

Логотип «RuCaptcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как запускать открытые парсеры 2scraper: установка, прокси и Browser API

Грегори Фишер
Грегори Фишер

Технический специалист

2scraper — организация на GitHub с открытыми парсерами на Python, по одному репозиторию на сайт. На 29.10.2026 их было 65. Каждый парсер читает публичный сайт без входа в аккаунт, записывает по строке на каждый элемент в JSON или CSV и сообщает, чем закончился запуск. Код распространяется по лицензии MIT, и в каждом репозитории описано, что и когда измерялось и что нужно парсеру, кроме локального браузера.

Руководства по отдельным сайтам в этом разделе (SHEIN, Lidl, TipRanks, Transfermarkt, YouTube, Google Play, Avito) подробно разбирают по одному репозиторию. Это руководство описывает то, что у них общее, чтобы вы могли взять любой парсер из каталога ниже и запустить его, не читая отдельную инструкцию. Здесь рассказано, как устроены репозитории, как их установить и настроить, как читать результаты и коды завершения и когда сайту нужны прокси, решение капчи или удалённый браузер.

Точное описание каждого парсера — в README его репозитория. Ниже собраны общие для семейства правила; если README говорит иначе, следуйте README.

Что общего у всех парсеров

Один репозиторий на сайт, одна строка на элемент

amazon-scraper читает amazon.com, zimmo-scraper — zimmo.be и так далее. Каждый запуск создаёт файл с результатами (по умолчанию JSON, с --format csv — CSV), где каждая строка — это один товар, объявление, пост, видео или игрок. Поля идут в одном и том же порядке в обоих форматах, а отсутствующее значение записывается как null.

Три браузерных движка

В большинстве репозиториев один и тот же цикл парсинга работает через три драйвера: playwright_scraper.py (основной, рекомендуется), selenium_scraper.py и puppeteer_scraper.py (pyppeteer или Node Puppeteer, в зависимости от репозитория). Драйверы используют общий разбор страниц сайта в product_parser.py и, если он есть в репозитории, общую логику состояний страницы в page_flow.py. Больше всего тестов у Playwright. Два других движка поддерживаются, но не все сценарии проверены от начала до конца; в README перечислено, что запускалось вживую.

Без браузера, если сайт это позволяет

Если сайт сам отдаёт данные через свой эндпоинт, как Hacker News или YouTube через Innertube API для части данных, репозиторий обращается к нему напрямую и пишет об этом. Браузер используется, только когда данные собирают скрипты страницы.

Офлайн-тесты и контрольный запуск

В каждом репозитории есть офлайн-тесты (python3 smoke_test.py или pytest tests/), которые проверяют разбор страниц на очищенных фрагментах реальных страниц без доступа к сети. В большинстве репозиториев также есть контрольный запуск по расписанию в GitHub Actions: он запускает парсер на живом сайте и проверяет результат. Оба показаны значками в начале README. Зелёный значок контрольного запуска значит, что при последнем запуске по расписанию сайт выглядел так же, как раньше.

Замеры с датами

Если в README сказано, что сайт не пускает адреса дата-центров или требует браузер с окном, там же указано, когда и откуда это измерялось. Сайты меняются, поэтому перепроверьте старый замер, прежде чем на него опираться.

Установка

Устройство везде одинаковое: отдельное виртуальное окружение для каждого движка (их зависимости конфликтуют), отдельный файл зависимостей для каждого движка и файл .env для всего секретного.

bash Copy
git clone https://github.com/2scraper/<site>-scraper.git
cd <site>-scraper
python3 -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements-playwright.txt
playwright install chromium
cp .env.example .env

Для Selenium или Puppeteer создайте отдельное виртуальное окружение и установите requirements-selenium.txt или requirements-puppeteer.txt. Во многих репозиториях также есть Dockerfile, который собирает образ с уже установленными Playwright и Chromium.

Базовая версия для семейства — Python 3.9 или новее; некоторым репозиториям нужна более свежая.

Настройка: .env, переменные окружения, командная строка

Храните учётные данные в .env или в переменных окружения. Большинство парсеров принимают их и флагами, но всё, что передаётся в командной строке, попадает в историю shell и в список процессов. Значения берутся в таком порядке: явно указанный флаг, затем переменная окружения, затем .env, затем значение по умолчанию. Пустое значение или незаполненная заглушка считаются ненастроенными и никогда не включают платные функции.

Имена переменных устроены одинаково. Точный список для репозитория — в его .env.example:

Переменная Для чего
TWOCAPTCHA_KEY Ваш API-ключ RuCaptcha. Нужен только парсерам, которые решают капчу.
<SITE>_CDP_ENDPOINT Адрес профиля RuCaptcha Browser API (Chrome DevTools Protocol). Если он задан, Playwright и Puppeteer подключаются к этому удалённому браузеру вместо запуска локального.
<SITE>_PROXY Один прокси в формате http://login:pass@host:port или host:port:login:pass. Репозитории со списком прокси также принимают --proxy-file и --proxy-shuffle.

Для этих значений действуют два правила. Прокси никогда не меняется посреди активной сессии браузера: при смене IP запускается новая сессия без старых cookies. И удалённый браузер по CDP никогда не совмещается с локальными прокси, user agent или фингерпринтом.

Запуск парсера

Каждый парсер — консольная утилита. Вы указываете, что читать (поисковый запрос, категорию, URL или идентификатор, в зависимости от сайта) и сколько:

bash Copy
# поиск, не больше 60 результатов, JSON в файл по умолчанию
python3 playwright_scraper.py --query "linen pants" --max-results 60

# конкретный URL с сохранением в CSV
python3 playwright_scraper.py --url "https://example.com/some/listing" --format csv --out listing.csv

Значения по умолчанию небольшие, обычно 20–30 результатов и пара повторов, чтобы первый запуск был быстрым, а на сайтах с платными функциями — дешёвым. --help выводит все флаги, а в разделе Quick start в README показаны команды, важные для конкретного сайта.

Некоторые сайты не пускают Chromium в режиме без окна (headless), и в README сказано, какие именно. На сервере без дисплея запускайте такие парсеры через виртуальный дисплей:

bash Copy
xvfb-run -a python3 playwright_scraper.py --query "..."

Чтение результата: файл .meta.json

Запуск, который собрал данные, пишет два файла: результаты (<out>.json или <out>.csv) и рядом файл метаданных <out>.meta.json. Автоматизация должна читать именно его. В нём записано как минимум:

  • status и stop_reason: завершился ли запуск полностью и, если нет, почему (blocked, rate_limited, remote_api_error, failed_pages, parser_found_nothing и т. д.);
  • число строк, общее число результатов по данным сайта, если сайт его сообщает, и ограничил ли запуск флаг --max-results;
  • расход платных функций, например solves_spent;
  • хеш файла с результатами, чтобы файл метаданных можно было сопоставить с данными.

Запуск, который не собрал ни одной строки, не пишет ни одного файла, и предыдущий удачный результат остаётся на месте. Если пустой файл нужен специально, укажите --allow-empty. В CSV всегда есть строка заголовков, а значения, похожие на формулы таблиц, экранируются; их число записывается в файл метаданных.

Коды завершения

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

Код Значение Что делать
0 Готово Данные записаны.
1 Сбой Ошибка в парсере. Посмотрите traceback и откройте с ним issue.
2 Ошибка вызова Исправьте команду.
3 Блокировка Сайт отказал сессии, строк получить не удалось. Смените режим доступа (см. ниже).
4 Результатов действительно нет Страница загрузилась, но подходящих элементов на ней нет.
5 Контент не получен Страница не загрузилась, отказал удалённый сервис, или сайт сообщил о наличии элементов, но ни один не удалось разобрать — обычно это значит, что изменилась вёрстка.
6 Частичный результат Строки записаны, но запуск не завершился чисто. Причина — в stop_reason.

Коды 3, 4 и 5 разделены специально. Пустой сайт, блокировка и сломанный парсер требуют разных действий.

Режимы доступа: что нужно каждому сайту

Сайты по-разному относятся к автоматическим посетителям, и в каталоге ниже у каждого парсера отмечен свой режим. Отметки основаны на датированных замерах из README, поэтому считайте их последним известным состоянием.

Без ключа и прокси. 34 из 65 парсеров при последней проверке работали с обычного домашнего подключения без какой-либо настройки. Браузер всё равно нужен (а парсерам без браузера не нужно ничего), и частоту запросов стоит держать умеренной.

Резидентный прокси. Некоторые сайты пускают домашние подключения, но отклоняют адреса дата-центров. Тогда парсер, который работает на ноутбуке, на облачном сервере завершается с кодом 3. Укажите в <SITE>_PROXY резидентный прокси: резидентные прокси RuCaptcha работают в обоих форматах выше, а Proxy API генерирует списки для --proxy-file. Selenium удаляет пароль прокси с предупреждением, поэтому для прокси с авторизацией используйте Playwright или Puppeteer.

Решение капчи. Если сайт ставит перед страницей настоящую капчу, как шлюз проверки SHEIN, GeeTest на Avito или DataDome на G2, репозиторий отправляет её в RuCaptcha, когда задан TWOCAPTCHA_KEY. Расходы на решение всегда ограничены. Флаги вроде --solve-captcha определяют, когда решать, а ограничения вроде --max-solves или фиксированного числа решений на страницу — сколько запуск может потратить; точные флаги указаны в README. Проверкам браузера, которые проходят сами, как промежуточная страница Cloudflare, даётся время, прежде чем покупать решение или сообщать о блокировке.

Удалённый браузер. 9 парсерам нужен RuCaptcha Browser API — профиль Chromium на стороне RuCaptcha, к которому вы подключаетесь по CDP. Он сохраняет cookies и состояние браузера между запусками, поэтому профиль, один раз прошедший проверку сайта, обычно продолжает работать. Задайте <SITE>_CDP_ENDPOINT (или передайте --cdp-endpoint) и запускайте как обычно. Учётные данные Browser API со временем истекают: если пришёл ответ HTTP 401, создайте новый адрес подключения, как описано в документации Browser API. Selenium не умеет авторизоваться на удалённом браузере, поэтому используйте Playwright или Puppeteer.

Профиль фингерпринта. Некоторые репозитории умеют подставлять в локальный браузер user agent и связанные заголовки из RuCaptcha Browser fingerprints (--fingerprint, --fp-tags, --fp-country). В нескольких репозиториях клиент уже есть, но к движкам ещё не подключён; это указано в их README.

В каждом README сказано, какой режим нужен сайту и что даёт каждая платная функция. Если сайту не нужно ничего платного, README тоже об этом говорит.

Как сравнивать запуски

Парсеры цен и объявлений часто включают инструмент сравнения, например diff_runs.py в SHEIN и Avito. Он сравнивает два полных запуска по уникальному ключу и показывает, что добавилось, исчезло или изменилось в цене. Сравнения, которые могут ввести в заблуждение, он не выполняет: запуски с разными запросами или рынками, файл метаданных, который не соответствует своим данным, или запуск, ограниченный --max-results, где товар мог просто выпасть из первых N. Если в репозитории нет такого инструмента и вы пишете свой, применяйте те же проверки: сравнивайте только запуски с одинаковым режимом, рынком, статусом завершения и ограничениями.

Каталог

Колонка «Доступ»: Без ключа и прокси — при последней проверке парсер работал с домашнего подключения без настройки. RuCaptcha Browser API — нужен профиль удалённого браузера. См. README — зависит от того, где вы запускаете парсер: например, из дома он работает, а с сервера нужен резидентный прокси. У некоторых платформ несколько парсеров, потому что их разделы защищены по-разному: у TikTok их четыре, у Facebook три.

E-commerce и розница

Парсер Данные Доступ
Amazon scraper Поиск, бестселлеры, страницы товаров и отзывы Без ключа и прокси
Andie Swim scraper Купальники: наличие и цены по размерам Без ключа и прокси
Bershka scraper Каталог Inditex, одна строка на SKU См. README
Catawiki scraper Аукционные лоты: ставки, резервные цены, оценки, продавцы Без ключа и прокси
Etsy scraper Поиск, категории, магазины и страницы товаров RuCaptcha Browser API
Farfetch scraper Каталог модной одежды и страницы товаров с ценами См. README
Givenchy scraper Косметика и цены Без ключа и прокси
Home Depot scraper Категории и страницы товаров: цены, характеристики См. README
Kohl's scraper Категории, поиск и товары: цены, диапазоны цен, метки распродаж, наличие по SKU RuCaptcha Browser API
LG scraper Модели из каталога, размеры и категории Без ключа и прокси
Lidl scraper Продукты в США: цены и цены за единицу Без ключа и прокси
Maison KOSÉ scraper Японская косметика: товары, цены, бренды, наличие Без ключа и прокси
MediaMarkt scraper Каталог и страницы электроники, цены См. README
Montblanc scraper Цены по рынкам, наличие, коллекции, варианты Без ключа и прокси
Pottery Barn scraper Категории с диапазонами цен, затем цена, уценка и наличие каждого SKU См. README
Rakuten scraper Товары Ichiba: цены, баллы, магазины, отзывы Без ключа и прокси
SHEIN scraper Поиск, категории и товары: цены, скидки, рейтинги, наличие См. README
Sleep Number scraper Умные кровати и матрасы: цены по размерам, рейтинги См. README
StockX scraper Кроссовки: предложения продавцов, ставки покупателей, последняя сделка RuCaptcha Browser API
TikTok Shop scraper Товары, цены, число продаж, продавцы RuCaptcha Browser API
Tokopedia scraper Маркетплейс Индонезии: поиск, категории, товары RuCaptcha Browser API
Tractor Supply scraper Товары для фермы: цены и наличие по магазинам, рейтинги RuCaptcha Browser API
Woolworths scraper Супермаркет: товары, цены, цены за единицу, акции Без ключа и прокси

Объявления, недвижимость и путешествия

Парсер Данные Доступ
Autotrader scraper Автомобили в США: цена, справедливая цена KBB, VIN, дилеры См. README
Avito scraper Объявления Avito: выдача, страницы объявлений и профили продавцов, цены RuCaptcha Browser API
Craigslist scraper Списки объявлений и сами объявления Без ключа и прокси
dubizzle scraper Объявления ОАЭ: автомобили, недвижимость, вакансии См. README
Facebook Marketplace scraper Объявления по запросу, категории, местоположению и цене, без входа в аккаунт См. README
Flippa scraper Онлайн-бизнесы, сайты, приложения и домены на продажу Без ключа и прокси
MakeMyTrip scraper Отели Индии: цена за ночь с налогами и сборами, звёзды и оценки гостей RuCaptcha Browser API
Rosreestr scraper Росреестр: кадастровая стоимость, площадь, права и обременения См. README
Skyscanner scraper Поиск авиабилетов: маршруты, цены, авиакомпании и время См. README
Spinny scraper Подержанные автомобили: объявления и страницы машин, цены Без ключа и прокси
Vrbo scraper Аренда жилья для отдыха: выдача и страницы объектов См. README
Webmotors scraper Автомобили и мотоциклы в Бразилии: цена, оценка FIPE, рыночный диапазон, пробег, продавец См. README
Zimmo scraper Недвижимость в Бельгии: цены, площадь, спальни, EPC См. README

Еда и доставка

Парсер Данные Доступ
foodpanda scraper Рестораны: рейтинги, кухни, акции См. README

Приложения, соцсети и видео

Парсер Данные Доступ
Facebook Pages scraper Контакты, подписчики, точное число лайков и последние посты с вовлечённостью Без ключа и прокси
Google Play scraper Приложения, поиск, установки, рейтинги и отзывы Без ключа и прокси
Instagram scraper Публичные профили и посты: подписчики, лайки, комментарии, подписи, медиа См. README
Meta Ad Library scraper Реклама по запросу или рекламодателю, охват и таргетинг в ЕС и Великобритании, политические расходы Без ключа и прокси
Snapchat scraper Публичные профили, число подписчиков, просмотры и вовлечённость Spotlight, истории и хайлайты Без ключа и прокси
TikTok Ad Library scraper Реклама в ЕС: рекламодатели, креативы, даты показа, размер аудитории Без ключа и прокси
TikTok profiles scraper Точное число подписчиков, лайков и видео, описание профиля Без ключа и прокси
TikTok videos scraper Подписи, вовлечённость, хештеги, субтитры, ссылки на медиа Без ключа и прокси
Weibo scraper Горячая лента, ленты аккаунтов, комментарии, вовлечённость Без ключа и прокси
YouTube scraper Комментарии и ответы, метаданные видео, поиск Без ключа и прокси

Публикации и вопросы-ответы

Парсер Данные Доступ
Goodreads scraper Списки, книги автора, поиск, страницы книг, все отзывы Без ключа и прокси
Hacker News scraper Списки историй, полные деревья комментариев и профили Без ключа и прокси
Medium scraper Ленты тегов, архивы, страницы авторов, полный текст статей Без ключа и прокси
Perplexity scraper Pages и статьи Discover: авторы, цитируемые источники, просмотры RuCaptcha Browser API
Quora scraper Ответы из вопросов, профилей и тем Без ключа и прокси

Вакансии и каталоги компаний

Парсер Данные Доступ
BBB scraper Компании, рейтинги BBB, аккредитация, жалобы См. README
G2 scraper Категории софта, отзывы и страницы цен: обе шкалы рейтинга, число отзывов См. README
Just Join IT scraper IT-вакансии с зарплатами, навыками и уровнем Без ключа и прокси
Mercor scraper Контрактные роли, ставки, требования, вакансии компаний Без ключа и прокси
Wellfound scraper Вакансии стартапов с диапазонами зарплаты и доли См. README

Финансы, рынки и краудфандинг

Парсер Данные Доступ
Binance scraper P2P-объявления, портфели копитрейдинга, анонсы Без ключа и прокси
Google Finance scraper Котировки, финансовые показатели, оценки аналитиков, OHLCV, валюты Без ключа и прокси
Indiegogo scraper Кампании, собранные суммы, спонсоры, уровни вознаграждений Без ключа и прокси
OpenSea scraper Минимальные цены NFT, предложения, история продаж, рейтинги Без ключа и прокси
Polymarket scraper Цены рынков предсказаний, стаканы, id токенов Без ключа и прокси
Screener scraper Индийские акции и отрасли: цена, P/E, капитализация, ROCE Без ключа и прокси
TipRanks scraper Smart Score, консенсус аналитиков и целевые цены по тикеру См. README

Спорт

Парсер Данные Доступ
Transfermarkt scraper Рыночная стоимость, составы, трансферы, профили игроков См. README

Все репозитории: github.com/2scraper. Нет нужного сайта? Оставьте запрос.

Руководства по отдельным сайтам

FAQ

Нужен ли аккаунт RuCaptcha, чтобы пользоваться этими парсерами?
Для большинства — нет. 34 парсера при последней проверке работали без ключа и прокси, а код распространяется по лицензии MIT. Аккаунт нужен, только если в README сказано, что сайту требуется решение капчи, резидентный прокси или профиль удалённого браузера, и там же объяснено, что даёт каждый вариант.

Почему Playwright рекомендуется вместо Selenium и Puppeteer?
Playwright — основной движок во всех репозиториях. Его проверяют вживую, он работает с прокси с авторизацией и с удалёнными браузерами по CDP, на нём идут контрольные запуски. Selenium и Puppeteer используют тот же цикл и поддерживаются, но Selenium не умеет работать с прокси с авторизацией и удалёнными браузерами, а другие движки проверены не во всех репозиториях.

Можно ли запускать несколько парсеров параллельно?
Да, отдельными процессами. Внутри одного парсера параллельная работа включена, только если у страниц есть собственные адреса. Бесконечная прокрутка и пагинация по курсору остаются последовательными, потому что их нельзя разделить между процессами. В любом случае держите общую частоту запросов умеренной.

Законно ли парсить эти сайты?
Парсеры читают общедоступные страницы без входа в аккаунт. Допустимо ли конкретное использование, зависит от законов вашей страны, условий сайта и того, что вы делаете с данными, особенно с персональными. Это не юридическая консультация: изучите условия и местное законодательство, не превышайте разумную частоту запросов и не собирайте данные, для обработки которых у вас нет оснований.

Парсер завершается с кодом 3 на сервере, а на ноутбуке работает. Что изменилось?
Диапазон адресов. Многие сайты пускают домашние подключения и отклоняют адреса дата-центров. Укажите резидентный прокси в <SITE>_PROXY или используйте профиль Browser API, если его рекомендует README этого сайта.

Как понять, что парсер всё ещё работает?
Посмотрите на значок контрольного запуска в README: он показывает последний запуск по расписанию. После установки запустите офлайн-тесты и после каждого запуска читайте .meta.json, а не полагайтесь на то, что непустой файл полный.

Исходный код

Документация