Привет Хабр!

Сегодня я бы хотел написать об такой нише как парсинг, так-как я пристрастился к Python только благодаря тому что я люблю халяву свободные данные, а так-же и с пониманием того что данные в удобном формате это не просто куча структурированных данных это будущее. Что сейчас мы и видим в эру ИИ.

Из чего будет состоять это статья? Она будет разбита на 3 части:

  1. Что такое парсинг? (Для новичков)

  2. Для чего нужен парсинг? (Как на этом можно заработать, и где использовать)

  3. Как вкатиться в парсинг? (DevTools, HTML, Python)

Хочу предупредить для продвинутых, что в статье я не затрону глубоко selenium, playwright, headers обходы, proxy, и иные обходы так-как я захотел написать всё простым языком, что-бы новички которые хотят поковыряться в парсинге понимали на что подписываются.

Что такое парсинг (Простыми словами)

Парсинг - это автоматизированный сбор, анализ и структурирование данных из внешних источников (чаще всего сайтов) с помощью специальных программ-парсеров

Так пишет Google при запросе парсинг, это коротко и ясно, но по моему мнению она закрывает целый спектр эмоций которое вызывает это творчество. Я считаю что парсинг это про умение думать как разработчик, как человек который проектировал сайт Backend, это про умение находить наилучшие решение, с помощью анализа, это как играть в детектива. Вот моё определение слово парсинг

Парсинг - это автоматический сбор, структурирование и фильтрация данных с поиском малейших лазеек для более качественного результата. Это умение думать как разработчик и детектив одновременно.

Для чего нужен парсинг

Вы видели сайты по продаже разной техники, инструментов, или вообще носков? Но во время более тщательного поиска находили точно такой-же товар на другом сайте, с тем же названием, описанием и даже артикулом но где цена немного ниже? Это отличный пример парсинга, в данном примере сайты являются ретрансляторами и просто выкладывают готовые данные на своём сайте по более высокой цене в надежде что их кто-то купит. Я могу это подтвердить так-как я работаю на бирже, и у меня были заказы данного характера.

Как на этом заработать?

Заработать в такой нише всё сложнее и сложнее, так-как конкуренция растёт молодые программисты как я борются за каждого покупателя. Это проблема которая может вас преследовать в начале пути, и у меня на этот счёт нет совета, или формулы. Но могу с уверенностью сказать, что если вы найдёте покупателя держите его зубами, и не отпускайте, предлагайте альтернативные решение, уступайте и поддакивайте, таким образом я смог найти пару верных покупателей которые всегда отзывчивы, и готовы идти на уступки.

Я сижу на бирже Помойка Kwork, не могу сказать что это, худшая биржа но однозначно не из самых лучших, высокие комиссии, конкуренция, и буквально рабские условия для разработчика, поэтому я предлагаю вам тут искать покупателей, но потом в будущем переманивать их на телеграмм, что-бы избавиться от комиссий.

Где можно ещё использовать?

Парсинг открывает гору возможностей до создание сайта с мангой, до обучение ИИ. Но перечислю по порядку:

  1. Обучение ИИ на своём дата сете, этот вариант самый сложный, но и самый сладкий.

  2. Создание собственного ТГ бота, с парсингом погоды в вашем городе и рассылкой всем пользователям.

  3. Создать сайт как и говорилось в начале этого отрывка.

Вы можете увидеть пример данного проекта в моей прошлой статье

Как вкатиться в парсинг?

После моих сладких речей может показаться что парсинг это что-то сложное, но хочу вас обрадовать, парсинг прост в начале, но сложен в конце. Так-как по мере надобности будут появляться новые способы защиты, такие как: 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 - данные приходят прямо, уже в удобной форме, нужно лишь найти такие запросы

Блюр так-как это NSFW контент
Блюр так-как это NSFW контент

Мы видим как мы получаем данные прямо из 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)


  1. Emelian
    20.04.2026 19:03

    Сделать разбор на обходы блокировок?

    Я вот, допустим, с помощью двадцати строчек кода в собственном расширении для старой версии Хрома, смог реально обходить капчу и загрузить пару сотен тысяч страниц из различных онлайн-словарей. Хотя сам код расширения, я в каком-то из своих комментариев опубликовал, здесь, но, без особых подробностей. Не уверен, что этим кодом смог воспользоваться, даже тот, кто попросил меня о нем.

    У вас какое будет аналогичное решение?

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

    А реальный пример использования парсинга, мы в какой, по счету, статье получим и получим ли вообще?

    Например, в моей статье: «Запоминаем иностранные слова по видео-словарю, упорядоченного по грамматическим категориям и переводам» ( https://habr.com/ru/articles/1021912/ ) продемонстрирован результат загрузки озвученного французско-русского онлайн-словаря, извлечены данные из него и создан видео-словарь для изучения выбранной категории слов, упорядоченных по нашему усмотрению.

    При этом код в статье не демонстрировался, хотя, доступен архив проекта по ссылке. Там и дан весь программный код (на Питоне), который можно сразу запустить и посмотреть результат. Ибо читать код в статье – это пустая трата времени, по большом счету. А вот о концепции и программной логике, обычно, говорят мало.

    P.S. Впрочем, подобную претензию можно предъявить многим. На сайте опубликованы, к примеру, сотни статей про ИИ и иже с ним, но там описан, в основном, либо процесс, либо новости, либо освоение / изучение, либо какие-то общие рассуждения, в стиле: «А поговорить?».

    Результаты, если и даны, то, в лучшем случае, это ссылки на свои веб-сервисы, где непонятно что и зачем делается.

    Иначе говоря, разговоров про ИИ на рубль, а реального выхлопа – на копейку.

    Я, вот, допустим, использовал бесплатный ИИ для разработки графической обёртки для консольного загрузчика «yt-dlp.exe», чтобы более удобно скачивать любимые видосики из «народного» видеохостинга. Без ИИ-ёв я бы этой программы не наваял. Результат и архив с кодом можно посмотреть в статье: «Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика» ( https://habr.com/ru/articles/955838/ ).

    P.P.S. Ну, почему у народа такая тяга к рассуждениям «вообще»? Или я что-то не понимаю и сильно отстал от жизни? :) Зачем других учить тому, чему только вчера сам научился? Это же будут, как показывает опыт, очередные благоглупости.


  1. 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

    Если вдруг знаете более лечшие решения, поделитесь пожалуйста, чтобы я на изобретение велосипедов время не тратил )))


    1. gevals
      20.04.2026 19:03

      А как насчет обхода блокировки озона?)) в частности получения зеленой цены?


      1. RS_AI
        20.04.2026 19:03

        Мне помогал селениум, но к сожалению это долго. По зелёной цене в случае эмуляции проблем нет.


        1. gevals
          20.04.2026 19:03

          селениум тут действительно так себе вариант((


      1. AntonDodonov
        20.04.2026 19:03

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


        1. gevals
          20.04.2026 19:03

          если бы только это)) в лс написал


  1. uralhi
    20.04.2026 19:03

    Для простых случаев для парсинга пользуюсь MS Power Automate. Там в визуальном интерфейсе получается быстрее чем в питоне. Впрочем сейчас с ИИ разница уже не столь заметная


  1. kaka888
    20.04.2026 19:03

    Как же безграмотно написано