РазработкаЗащита оплатыПодробнее
- Доработки в рамках пакета бесплатны.
- Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.
При оплате деньги резервируются и переходят сервису, только когда вы примете работу.

Пример результата
Парсер каталога поставщика садового инструмента в Excel
Как выглядит результат
| Артикул | Название | Цена | В наличии | Вес | Фото |
|---|---|---|---|---|---|
| GT-1042 | Секатор, 20 мм | 18,90 | Да | 0,24 кг | …/gt-1042.jpg |
| GT-1187 | Складная пила, 210 мм | 24,50 | Да | 0,31 кг | …/gt-1187.jpg |
| GT-2210 | Ножницы для кустов, волнистое лезвие | 39,00 | Нет | 1,10 кг | …/gt-2210.jpg |
| GT-3305 | Совок, нержавеющая сталь | 9,80 | Да | 0,18 кг | …/gt-3305.jpg |
| GT-4120 | Садовый шланг 25 м, 1/2" | 42,00 | Да | 2,90 кг | …/gt-4120.jpg |
В файле из примера 1236 товаров с 52 страниц списка.
Фрагмент кода
def product_links(list_url: str) -> Iterator[str]:
"""Ссылки на карточки со всех страниц списка, по кнопке «Дальше»."""
url: str | None = list_url
while url:
page = fetch(url)
for card in page.select("div.product-card a.title"):
yield urljoin(url, card["href"])
next_link = page.select_one("a.pagination-next")
url = urljoin(url, next_link["href"]) if next_link else None
def fetch(url: str) -> BeautifulSoup:
"""Одна открытая страница, без спешки: пауза между запросами и несколько попыток при ошибке."""
for attempt in range(3):
time.sleep(settings.delay_seconds)
response = session.get(url, timeout=30)
if response.status_code == 200:
return BeautifulSoup(response.text, "html.parser")
log.warning("%s ответил %s, попытка %d из 3", url, response.status_code, attempt + 1)
raise ScraperError(f"{url} не открылся за 3 попытки")
Файлы: ZIP-архив с scraper.py, settings.ini (стартовая страница, пауза между запросами, имя файла), requirements.txt и README: как установить и запустить. Парсер читает только открытые страницы, одну раз в 2 секунды, и сначала проверяет robots.txt сайта. Клиент запускает его на своём компьютере.
Клиент: интернет-магазин товаров для сада, который перепродаёт инструмент поставщика. У поставщика открытый каталог на сайте, но нет прайс-листа файлом. Задача: пройти по страницам списка, открыть каждую карточку товара и сохранить в Excel артикул, название, цену, наличие, вес и ссылку на главное фото, чтобы раз в неделю сравнивать цены.
Клиент и все данные вымышлены.
Об услуге
Онлайн-школы, агрегаторы курсов и те, кто выбирает обучение, переносят открытый каталог курсов в таблицу: название, школа, тема, уровень, формат, длительность, дата старта, цена и старая цена, число уроков, рейтинг так, как он показан, и ссылка. Пришлите страницу каталога, одну страницу курса и одну-две страницы, сохранённые из браузера. Вы получите код на Python, файл настроек и README и запустите его на своём компьютере. Он копирует то, что написано на страницах, и не оценивает качество курсов и не обещает результатов обучения. Имена преподавателей и отзывы учеников не собираются, поэтому личных данных в таблице нет. Парсер читает открытые страницы в спокойном темпе, не входит в аккаунты и не обходит капчи и защиту. Разрешают ли это правила сайта, решаете вы; после смены вёрстки нужна доработка.
Что входит
- Что вы получитеАрхив ZIP с кодом на Python, файлом настроек и README с пошаговой инструкцией; код также виден на странице заказа.
- Цены для сравненияЦена, старая цена и рассрочка отдельными столбцами
- Длительность и форматНедели или часы, вживую или в записи, как на странице
- Тема и уровеньВ отдельных столбцах для фильтров
- Спокойный темпПауза между страницами, задаётся в настройках
- Работает на вашем компьютереWindows, macOS или Linux, с Python
Порядок работы
- 1КаталогВы даёте каталог и одну сохранённую страницу курса
- 2ПарсерМы пишем код и инструкцию по запуску
- 3ЗапускВы запускаете его и сверяете несколько курсов с сайтом
- 4ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть
Что нужно от вас
Сайт и конкретные страницы: ссылка на каталог курсов и на одну страницу курса и примерно сколько всего курсов. Поля в порядке вашей таблицы, например название, школа, тема, уровень, формат, длительность, дата старта, цена, старая цена, ссылка. Одна-две такие страницы, сохранённые из браузера («Файл» > «Сохранить страницу как»), или скриншоты. CSV или Excel.
В брифе мы спросим:
- Какой сайт и какие страницы?
- Нужные поля
- Сколько примерно курсов?
- Только часть курсов?
Сравнение пакетов
| Пакеты | ЭкономКурсы по вашим ссылкам21 $ | СтандартВесь каталог42 $ | БизнесДо 3 школ75 $ |
|---|---|---|---|
| Срок | 1 день | 2 дня | 3 дня |
| Доработки | 1 | 2 | 3 |
| Сайтов | 1 | 1 | до 3 |
| Типов страниц | 1 | 2 (каталог и страница курса) | до 3 |
| Полей | до 10 | до 25 | до 25 на каждом |
| Проход по страницам списка | Нет | Да | Да |
| Файл результатов | CSV | Excel или CSV | Excel, CSV или JSON |
| Без дублей, продолжение с места остановки | Нет | Нет | Да |
| Заказать Эконом | Заказать Стандарт | Заказать Бизнес |
Защита оплаты
Вы оплачиваете заказ сразу, но деньги переходят сервису только за принятую работу.
- Фиксированная ценаЦена пакета не меняется после оплаты.
- Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
- Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
- Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
- Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
- Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Вопросы и ответы
Может ли он открывать уроки внутри курса?
Нет. Уроки находятся за входом ученика, а парсер никогда не входит в аккаунты. Он читает только открытый каталог и страницы курсов.
Можно собрать имена преподавателей или отзывы учеников?
Нет. Имена людей — личные данные, поэтому их в таблице нет. Число рейтинга, если страница его показывает, может быть столбцом.
Что, если цены видны только после выбора тарифа или регистрации?
Цена за регистрацией парсеру недоступна. Если тарифы открываются по клику на вкладку, парсер прочитает их с помощью браузерной библиотеки (Playwright).
Можно ли собирать каталог курсов?
Правила сайтов и законы о данных отличаются, поэтому решение, можно ли собирать и использовать данные, за вами. Google, Amazon, LinkedIn и соцсети исключены в любом случае.
Не нашли ответ?


