Рубрика «парсинг»

С чего всё началось

Мы периодически летаем на Бали, и с каждым годом наша компания растёт. Сначала летали вдвоём с женой, потом втроём с дочкой, а в этом году полетит вообще 4 взрослых + 1 ребёнок.

В декабре 2025, устав от уральской зимы, я открыл сервис по поиску дешёвых авиабилетов. Билеты по маршруту Екатеринбург–Москва–Бали стоили дорого. Подписался на уведомления о ценах и стал ждать.

Читать полностью »

TL;DR: Я хотел просто сделать JSON с хадисами. В итоге написал свой парсер для PDF, боролся с Gradle и доменами в Maven Central, ломал генерацию картинок в Satori и оптимизировал Fuzzy Search с 5 секунд до 2.7 секунд с помощью AI. Это история о том, как пет-проект превратился в экосистемо на NestJS, Prisma и Redis.


Введение: "Всё должно было быть просто"

Идея казалась элементарной: сделать удобное API для хадисов — изречений Пророка Мухаммада (мир ему). Казалось бы, 2026 год на дворе, всё уже должно быть оцифровано, лежать на GitHub в красивом JSON, бери и пользуйся.

Я начал гуглить. Реальность ударила сразу:

Meta Description: Сравнение подходов к лидогенерации в Telegram: массовые рассылки и AI-таргетирование. Данные, конверсии, риски бана, архитектура фильтрации.

Два подхода к Telegram-маркетингу

В 2026 году Telegram — один из главных каналов B2B-лидогенерации в рунете. Но подходы к нему диаметрально разные:

Подход A: Массовая рассылка. Купить базу, написать всем, надеяться на 0.5% конверсию.

Подход B: Таргетированная лидогенерация. Найти релевантных людей в группах, написать персонализированно, получить 15-25% ответов.

Разберём оба — с цифрами, рисками и технической стороной.

Читать полностью »

BeautifulSoup используется для эффективного поиска элементов на html странице.

Установка:

pip install beautifulsoup4, lxml

Для запросов установите библиотеку requests, если она у вас не установлена:

pip install requests

Тренироваться будем на "тренажёре".

Получаем HTML-документ по HTTP и строим DOM-дерево с помощью BeautifulSoup

from bs4 import BeautifulSoup
import requests

response = requests.get('http://parsingme.ru/beautifulsoup/1.html')
soup = BeautifulSoup(response.text, 'lxml')
print(soup)

Первым параметром мы передаем html-код страницы, а вторым парсер. Помимо lxml (это лучший вариант) парсер может быть:

Ночью (а точнее уже утром), я не мог уснуть, из-за навязчивой мысли в голове..

А что если спарсить часть статей с хабра и представить их в виде obsidian графа, будет ли это выглядеть, как красивая база знаний?

Откуда датасет?

Первым делом, я решил найти API хабра, для получения статей. Как я понял, они закрытые..

Мобильное приложение, насколько я знаю, тоже берёт статьи с сайта, без API.

Тогда, я вспомнил свой старый проект, который я начал делать, когда только учился парсингу (там был ужас по коду), скрапер на beautifulsoup4 и requests.

Читать полностью »

На imcdb.org энтузиасты уже два десятка лет отмечают автомобили в фильмах: кадры, марки, модели. Верифицируют находки на форуме, спорят о деталях. В итоге появилась крупнейшая база “машин-актёров” в кино: 1,75 млн страниц с кадрами и описаниями транспорта из фильмов разных стран. Я собрал всё это в один датасет.

Читать полностью »

Что будем делать

В этой статье мы разберём основы парсинга данных в Python. Мы начнём с простых строк с помощью регулярных выражений, перейдём к парсингу HTML с использованием библиотеки BeautifulSoup, познакомимся с pandas для работы с данными и, наконец, соберём всё вместе, чтобы спарсить реальный датасет (например, топ фильмов с IMDb) и сохранить его в CSV-файл.

Все примеры будут сопровождаться кодом на Python, который вы можете запустить самостоятельно. Для выполнения кода вам понадобится установить необходимые библиотеки: beautifulsoup4 requests pandasЧитать полностью »

Разбираем на примере Russia Today, Коммерсант и Meduza*

Парсинг российских СМИ - 1

Читать полностью »

Отслеживаем новости, документы и тендеры

Rostral.io размышляет над ответом вместо вас

Rostral.io размышляет над ответом вместо вас

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js