Привет Хабр!
Сегодня я бы хотел написать об такой нише как парсинг, так-как я пристрастился к Python только благодаря тому что я люблю халяву свободные данные, а так-же и с пониманием того что данные в удобном формате это не просто куча структурированных данных это будущее. Что сейчас мы и видим в эру ИИ.
Из чего будет состоять это статья? Она будет разбита на 3 части:
Что такое парсинг? (Для новичков)
Для чего нужен парсинг? (Как на этом можно заработать, и где использовать)
Как вкатиться в парсинг? (DevTools, HTML, Python)
Хочу предупредить для продвинутых, что в статье я не затрону глубоко selenium, playwright, headers обходы, proxy, и иные обходы так-как я захотел написать всё простым языком, что-бы новички которые хотят поковыряться в парсинге понимали на что подписываются.
Что такое парсинг (Простыми словами)
Парсинг - это автоматизированный сбор, анализ и структурирование данных из внешних источников (чаще всего сайтов) с помощью специальных программ-парсеров
Так пишет Google при запросе парсинг, это коротко и ясно, но по моему мнению она закрывает целый спектр эмоций которое вызывает это творчество. Я считаю что парсинг это про умение думать как разработчик, как человек который проектировал сайт Backend, это про умение находить наилучшие решение, с помощью анализа, это как играть в детектива. Вот моё определение слово парсинг
Парсинг - это автоматический сбор, структурирование и фильтрация данных с поиском малейших лазеек для более качественного результата. Это умение думать как разработчик и детектив одновременно.
Для чего нужен парсинг
Вы видели сайты по продаже разной техники, инструментов, или вообще носков? Но во время более тщательного поиска находили точно такой-же товар на другом сайте, с тем же названием, описанием и даже артикулом но где цена немного ниже? Это отличный пример парсинга, в данном примере сайты являются ретрансляторами и просто выкладывают готовые данные на своём сайте по более высокой цене в надежде что их кто-то купит. Я могу это подтвердить так-как я работаю на бирже, и у меня были заказы данного характера.
Как на этом заработать?
Заработать в такой нише всё сложнее и сложнее, так-как конкуренция растёт молодые программисты как я борются за каждого покупателя. Это проблема которая может вас преследовать в начале пути, и у меня на этот счёт нет совета, или формулы. Но могу с уверенностью сказать, что если вы найдёте покупателя держите его зубами, и не отпускайте, предлагайте альтернативные решение, уступайте и поддакивайте, таким образом я смог найти пару верных покупателей которые всегда отзывчивы, и готовы идти на уступки.
Я сижу на бирже Помойка Kwork, не могу сказать что это, худшая биржа но однозначно не из самых лучших, высокие комиссии, конкуренция, и буквально рабские условия для разработчика, поэтому я предлагаю вам тут искать покупателей, но потом в будущем переманивать их на телеграмм, что-бы избавиться от комиссий.
Где можно ещё использовать?
Парсинг открывает гору возможностей до создание сайта с мангой, до обучение ИИ. Но перечислю по порядку:
Обучение ИИ на своём дата сете, этот вариант самый сложный, но и самый сладкий.
Создание собственного ТГ бота, с парсингом погоды в вашем городе и рассылкой всем пользователям.
Создать сайт как и говорилось в начале этого отрывка.
Вы можете увидеть пример данного проекта в моей прошлой статье
Как вкатиться в парсинг?
После моих сладких речей может показаться что парсинг это что-то сложное, но хочу вас обрадовать, парсинг прост в начале, но сложен в конце. Так-как по мере надобности будут появляться новые способы защиты, такие как: reCAPTCHA, Cloudflare.
Базовый пример парсера
import requests from bs4 import BeautifulSoup response = requests.get("http://example.com") # Делаем запрос к сайту soup = BeautifulSoup(response.text, "html.parser") # Парсим страницу title = soup.find("h1") # ищет print(title.text)
Поздравляю это ваш первый парсер, конечно это всего-то тестовый пример, и он скрывает за собой кучи нюансов, по типу ошибки со статусами, недоступен интернет но для первого раза сойдёт.
DevTools - друг, а не враг
Нажмите F12 на клавиатуре, что вы видите? Наверное странное поле с кучей данных, это DevTools, набор разработчика для отладки, и мы будем его использовать, для примера будем использовать мой сайт из прошлой статьи.
API - Лучший вариант из всех возможных
API - данные приходят прямо, уже в удобной форме, нужно лишь найти такие запросы

Мы видим как мы получаем данные прямо из API, из ссылки "pages?page=1&per_page=24", это бинго! При дальнейшем анализа мы узнаём что данные возвращаются при условии что в конце есть page и per_page. Значение этих параметров и за что они отвечают нам сразу ясны, но во многих сайтах есть иные параметры что требуют более глубокого анализа.

Конечно мы не будем ручками переписывать все заголовки запроса, а просто их скопируем и засунем их в сайт, я обычно использую curlconverter по итогу получаем такую красоту
import requests headers = { 'Accept': 'application/json', 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,eu;q=0.6', 'Connection': 'keep-alive', 'Origin': 'http://192.168.0.50:8000', 'Referer': 'http://192.168.0.50:8000/', } params = { 'page': '1', 'per_page': '24', } response = requests.get('http://192.168.0.50:8080/api/v1/pages', params=params, headers=headers, verify=False) data = response.json()
Данный код даёт возможность полностью повторить запрос, от начало и до конца.
Голый парсинг - имеем что имеем
Если данные не приходят через fetch то придётся довольствоваться тем что нам пришло прямо в документе, для этого существует прекрасная библиотека beautifulsoup, интуитивный парсинг find, find_all. Это идеально инструмент, но в будущем рекомендуется поменять find, на select так-как они гибче, и пишутся проще.

мы видим что данные хранятся в классе "manga" с тэгом "a" как это будет выглядеть в BS4?
import requests from bs4 import BeautifulSoup response = requests.get("http://192.168.0.50:8000") # Делаем запрос к сайту soup = BeautifulSoup(response.text, "html.parser") # Парсим страницу for manga in soup.find_all("a", class_ = "manga"): print(manga.get("href"))
Мы получим только ссылки, так-как мы выводим то что в атрибуте. Это уже можно назвать парсером, и вроде-бы вопрос где тут сложность? И вы будете правы, так-как на моём сайте 0 защиты, и что было-бы если была анти бот защита?
import requests response = requests.get("https://www.dns-shop.ru/") print(response.status_code)
Мы увидим 401, и не увидим наших данных, так-как сайт имеет защиту Qrator, что за гранью моего понимание, и для этого были созданы такие специальные инструменты как Selenium, playwright, и. т. д. Но о них по позже.
Заключение
Мы узнали что такое парсинг поверхностно, поняли базовые инструменты, и узнали пару новых словечек. В следующей статье хочу углубиться на тему обходов защит и использование уже готовых библиотек.
Комментарии (9)

AntonDodonov
20.04.2026 19:03Могу поделиться с вами своими решениями промышленного уровня.
https://github.com/NativeMindNet/crawler
Универсальный краулер (скраппер и парсер)
Описываете в конфиге селекторы, и шаблон url адресов страниц
Отработан на 4000+ округов США, в которых разные сайты (это именно 4000+ отдельных доменов, то есть источников. А не 4000 элементов на 1 сайте)
Если нужен обход блокировок - добавляете
https://github.com/NativeMindNet/cloudflare-bypass-service
Если нужно скачивание в промышленном масштабе - добавляете прокси бесплатные из tor
https://github.com/NativeMindNet/tor-socks-proxy-service
Если вдруг знаете более лечшие решения, поделитесь пожалуйста, чтобы я на изобретение велосипедов время не тратил )))
gevals
20.04.2026 19:03А как насчет обхода блокировки озона?)) в частности получения зеленой цены?

AntonDodonov
20.04.2026 19:03Под капотам есть два варианта на выбор: CURL и Selenium (Эмуляция браузера). Зеленую цену выдрать не проблема. Если вам нужна помощь - подскажите пожалуйста в чем затык и я помогу ))) Или вопрос в скачивании данных которые доступны только после авторизации?

uralhi
20.04.2026 19:03Для простых случаев для парсинга пользуюсь MS Power Automate. Там в визуальном интерфейсе получается быстрее чем в питоне. Впрочем сейчас с ИИ разница уже не столь заметная
Emelian
Я вот, допустим, с помощью двадцати строчек кода в собственном расширении для старой версии Хрома, смог реально обходить капчу и загрузить пару сотен тысяч страниц из различных онлайн-словарей. Хотя сам код расширения, я в каком-то из своих комментариев опубликовал, здесь, но, без особых подробностей. Не уверен, что этим кодом смог воспользоваться, даже тот, кто попросил меня о нем.
У вас какое будет аналогичное решение?
А реальный пример использования парсинга, мы в какой, по счету, статье получим и получим ли вообще?
Например, в моей статье: «Запоминаем иностранные слова по видео-словарю, упорядоченного по грамматическим категориям и переводам» ( https://habr.com/ru/articles/1021912/ ) продемонстрирован результат загрузки озвученного французско-русского онлайн-словаря, извлечены данные из него и создан видео-словарь для изучения выбранной категории слов, упорядоченных по нашему усмотрению.
При этом код в статье не демонстрировался, хотя, доступен архив проекта по ссылке. Там и дан весь программный код (на Питоне), который можно сразу запустить и посмотреть результат. Ибо читать код в статье – это пустая трата времени, по большом счету. А вот о концепции и программной логике, обычно, говорят мало.
P.S. Впрочем, подобную претензию можно предъявить многим. На сайте опубликованы, к примеру, сотни статей про ИИ и иже с ним, но там описан, в основном, либо процесс, либо новости, либо освоение / изучение, либо какие-то общие рассуждения, в стиле: «А поговорить?».
Результаты, если и даны, то, в лучшем случае, это ссылки на свои веб-сервисы, где непонятно что и зачем делается.
Иначе говоря, разговоров про ИИ на рубль, а реального выхлопа – на копейку.
Я, вот, допустим, использовал бесплатный ИИ для разработки графической обёртки для консольного загрузчика «yt-dlp.exe», чтобы более удобно скачивать любимые видосики из «народного» видеохостинга. Без ИИ-ёв я бы этой программы не наваял. Результат и архив с кодом можно посмотреть в статье: «Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика» ( https://habr.com/ru/articles/955838/ ).
P.P.S. Ну, почему у народа такая тяга к рассуждениям «вообще»? Или я что-то не понимаю и сильно отстал от жизни? :) Зачем других учить тому, чему только вчера сам научился? Это же будут, как показывает опыт, очередные благоглупости.