#парсер — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #парсер, aggregated by home.social.
-
Написание конечного автомата для разбора HTML
Всем привет! В этой статье напишем простой конечный автомат для парсинга HTML. Уровень средний, требуется понимания побитовых операций.
https://habr.com/ru/articles/1029372/
#конечные_автоматы #конечный_автомат #парсер #парсер_сайтов #парсеры
-
Написание конечного автомата для разбора HTML
Всем привет! В этой статье напишем простой конечный автомат для парсинга HTML. Уровень средний, требуется понимания побитовых операций.
https://habr.com/ru/articles/1029372/
#конечные_автоматы #конечный_автомат #парсер #парсер_сайтов #парсеры
-
Написание конечного автомата для разбора HTML
Всем привет! В этой статье напишем простой конечный автомат для парсинга HTML. Уровень средний, требуется понимания побитовых операций.
https://habr.com/ru/articles/1029372/
#конечные_автоматы #конечный_автомат #парсер #парсер_сайтов #парсеры
-
Написание конечного автомата для разбора HTML
Всем привет! В этой статье напишем простой конечный автомат для парсинга HTML. Уровень средний, требуется понимания побитовых операций.
https://habr.com/ru/articles/1029372/
#конечные_автоматы #конечный_автомат #парсер #парсер_сайтов #парсеры
-
От регулярок к ANTLR4: три архитектурных решения на парсере бизнес-формул
Три года назад я писал свой первый коммерческий парсер на ANTLR4 — для бизнес-формул аналитической системы. Несколько лет спустя я бы сделал его иначе в трёх центральных местах. Разбираю каждое: левая рекурсия для приоритета операторов, Listener vs Visitor, и почему getText() для повторного парсинга — антипаттерн.
https://habr.com/ru/articles/1027742/
#antlr #antlr4 #парсер #parser #грамматика #dsl #java #spring_boot #compiler #code_generation
-
От регулярок к ANTLR4: три архитектурных решения на парсере бизнес-формул
Три года назад я писал свой первый коммерческий парсер на ANTLR4 — для бизнес-формул аналитической системы. Несколько лет спустя я бы сделал его иначе в трёх центральных местах. Разбираю каждое: левая рекурсия для приоритета операторов, Listener vs Visitor, и почему getText() для повторного парсинга — антипаттерн.
https://habr.com/ru/articles/1027742/
#antlr #antlr4 #парсер #parser #грамматика #dsl #java #spring_boot #compiler #code_generation
-
От регулярок к ANTLR4: три архитектурных решения на парсере бизнес-формул
Три года назад я писал свой первый коммерческий парсер на ANTLR4 — для бизнес-формул аналитической системы. Несколько лет спустя я бы сделал его иначе в трёх центральных местах. Разбираю каждое: левая рекурсия для приоритета операторов, Listener vs Visitor, и почему getText() для повторного парсинга — антипаттерн.
https://habr.com/ru/articles/1027742/
#antlr #antlr4 #парсер #parser #грамматика #dsl #java #spring_boot #compiler #code_generation
-
От регулярок к ANTLR4: три архитектурных решения на парсере бизнес-формул
Три года назад я писал свой первый коммерческий парсер на ANTLR4 — для бизнес-формул аналитической системы. Несколько лет спустя я бы сделал его иначе в трёх центральных местах. Разбираю каждое: левая рекурсия для приоритета операторов, Listener vs Visitor, и почему getText() для повторного парсинга — антипаттерн.
https://habr.com/ru/articles/1027742/
#antlr #antlr4 #парсер #parser #грамматика #dsl #java #spring_boot #compiler #code_generation
-
Никакой магии: только лексер, парсер и интерпретатор на чистом PHP
Вы вроде бы пишете код на чистом PHP, но почему-то каждый день используете маленькие языки: DQL в Doctrine ( «u.age > 18» ), Twig-выражения ( «user|length > 0» ), Symfony ExpressionLanguage ( «user.is_active and order.total > 100` ). Никогда не возникало мысли о том, что хорошо бы избавиться от всех этих дополнений и использовать язык собственной разработки для решения нужных задач? В этой статье мы рассмотрим DSL — язык, заточенный под узкую задачу. Разобрать DSL
-
[Перевод] SIMD-парсер CSV
Год назад я написал парсер CSV , способный обрабатывать 64 символа за раз. Он создан исключительно в исследовательских целях и в нём не учтены важнейшие этапы продакшен-парсера наподобие валидации. Сегодня я расскажу о базовом алгоритме, использующем SIMD и побитовые операции для групповой фильтрации структурных символов.
-
[Перевод] SIMD-парсер CSV
Год назад я написал парсер CSV , способный обрабатывать 64 символа за раз. Он создан исключительно в исследовательских целях и в нём не учтены важнейшие этапы продакшен-парсера наподобие валидации. Сегодня я расскажу о базовом алгоритме, использующем SIMD и побитовые операции для групповой фильтрации структурных символов.
-
[Перевод] SIMD-парсер CSV
Год назад я написал парсер CSV , способный обрабатывать 64 символа за раз. Он создан исключительно в исследовательских целях и в нём не учтены важнейшие этапы продакшен-парсера наподобие валидации. Сегодня я расскажу о базовом алгоритме, использующем SIMD и побитовые операции для групповой фильтрации структурных символов.
-
[Перевод] SIMD-парсер CSV
Год назад я написал парсер CSV , способный обрабатывать 64 символа за раз. Он создан исключительно в исследовательских целях и в нём не учтены важнейшие этапы продакшен-парсера наподобие валидации. Сегодня я расскажу о базовом алгоритме, использующем SIMD и побитовые операции для групповой фильтрации структурных символов.
-
Парсер‑комбинаторы «с нуля»
Привет, Хабр! Парсер‑комбинаторы и синтаксический анализ в целом — очень интересные темы. Однако материалов со сравнительно низким порогом входа маловато, а в существующих статьях на читателя сразу обрушивается поток терминов и формальностей. Эту статью я позиционирую как введение в парсер‑комбинаторы «для чайников» (или «для самых маленьких» — как вам больше нравится). Цель: попытаться рассказать простым языком и с примерами так, чтобы Вы могли после прочтения написать свой парсер без какого‑либо предварительного опыта и знаний в области синтаксического анализа. Приятного чтения!
https://habr.com/ru/articles/1016632/
#парсеркомбинаторы #парсер #синтаксический_анализ #функциональное_программирование #dsl #разбор_текста #формальные_языки
-
Хорошо парсим NMEA0183
Приветствую, глубокоуважаемые! Будем стараться делать хорошо, плохо само получится (С) Любите ли вы NMEA0183, как люблю его я? Умеете ли? Практикуете ли? Парсите ли в уме, стоя на льду водоема? Хочу поделиться универсальным, модульным, гибким, шустрым и исключительно нетребовательным к ресурсам парсером для работы с NMEA-сообщениями в Embedded. Под катом подготовил для вас рассказ о том, как это работает, как использовать, онлайн-демку с пошаговым выполнением алгоритма и подсветкой выполняемых веток кода, а в качестве бонуса еще один парсер NMEA, я бы даже сказал убер-парсер - но уже не для Embedded. Начать погружение!
https://habr.com/ru/articles/975914/
#NMEA #парсер #arduino #TinyGPS #MicroNMEA #gpsнавигация #gpsприемник
-
Хорошо парсим NMEA0183
Приветствую, глубокоуважаемые! Будем стараться делать хорошо, плохо само получится (С) Любите ли вы NMEA0183, как люблю его я? Умеете ли? Практикуете ли? Парсите ли в уме, стоя на льду водоема? Хочу поделиться универсальным, модульным, гибким, шустрым и исключительно нетребовательным к ресурсам парсером для работы с NMEA-сообщениями в Embedded. Под катом подготовил для вас рассказ о том, как это работает, как использовать, онлайн-демку с пошаговым выполнением алгоритма и подсветкой выполняемых веток кода, а в качестве бонуса еще один парсер NMEA, я бы даже сказал убер-парсер - но уже не для Embedded. Начать погружение!
https://habr.com/ru/articles/975914/
#NMEA #парсер #arduino #TinyGPS #MicroNMEA #gpsнавигация #gpsприемник
-
Хорошо парсим NMEA0183
Приветствую, глубокоуважаемые! Будем стараться делать хорошо, плохо само получится (С) Любите ли вы NMEA0183, как люблю его я? Умеете ли? Практикуете ли? Парсите ли в уме, стоя на льду водоема? Хочу поделиться универсальным, модульным, гибким, шустрым и исключительно нетребовательным к ресурсам парсером для работы с NMEA-сообщениями в Embedded. Под катом подготовил для вас рассказ о том, как это работает, как использовать, онлайн-демку с пошаговым выполнением алгоритма и подсветкой выполняемых веток кода, а в качестве бонуса еще один парсер NMEA, я бы даже сказал убер-парсер - но уже не для Embedded. Начать погружение!
https://habr.com/ru/articles/975914/
#NMEA #парсер #arduino #TinyGPS #MicroNMEA #gpsнавигация #gpsприемник
-
Хорошо парсим NMEA0183
Приветствую, глубокоуважаемые! Будем стараться делать хорошо, плохо само получится (С) Любите ли вы NMEA0183, как люблю его я? Умеете ли? Практикуете ли? Парсите ли в уме, стоя на льду водоема? Хочу поделиться универсальным, модульным, гибким, шустрым и исключительно нетребовательным к ресурсам парсером для работы с NMEA-сообщениями в Embedded. Под катом подготовил для вас рассказ о том, как это работает, как использовать, онлайн-демку с пошаговым выполнением алгоритма и подсветкой выполняемых веток кода, а в качестве бонуса еще один парсер NMEA, я бы даже сказал убер-парсер - но уже не для Embedded. Начать погружение!
https://habr.com/ru/articles/975914/
#NMEA #парсер #arduino #TinyGPS #MicroNMEA #gpsнавигация #gpsприемник
-
Bash-скрипт на максималках: как работает менеджер задач для управления 300 скриптами
В Rusprofile наш домен – регтех, мы помогаем компаниям оценивать надежность контрагентов. Каждый день сотни скриптов качают данные из официальных открытых источников, парсят и строят кеши. В какой-то момент суммарное время работы скриптов стало неподобающим – задача заканчивалась, условно, к обеду следующего дня, в то время, когда нам нужно было к утру. Эта статья – о том, как “проклятье масштаба” оказалось алгоритмической задачей; решение – получилось благодаря принципам обхода ориентированных графов; а запаса прочности решения хватило, чтобы с момента появления на протяжении лет не требовалось дополнительных ресурсов и каких-либо доработок. Надеемся, эта история будет интересна тем, кому близки темы работы с зоопарком скриптов, управления связанными задачами, алгоритмических решений инженерных проблем, а также всем, кому любопытно, как различные сервисы устроены под капотом и какие особенности есть в регтех. Будут технические детали, теория графов и немного рефлексии.
-
DSL против универсальных языков: когда стоит создавать собственный доменный язык и как избежать ошибок
Мир разработки полон соблазнов изобретать собственные решения. Один из самых ярких соблазнов — создать свой DSL (Domain-Specific Language). Это звучит красиво: язык, который идеально отражает задачи конкретной предметной области. Но где заканчивается здравый смысл и начинается велосипедостроение? В статье я попробую на примерах показать, когда DSL — это спасение, а когда лучше взять старый добрый Python, C# или даже Bash.
https://habr.com/ru/articles/948242/
#dsl #domainspecific_language #универсальные_языки #Python #парсинг #грабли #пример_кода #бизнеслогика #etl #парсер
-
Что если представить habr в виде obsidian-графа?
Ночью (а точнее уже утром), я не мог уснуть, из-за навязчивой мысли в голове.. А что если спарсить часть статей с хабра и представить их в виде obsidian графа, будет ли это выглядеть, как красивая база знаний?
https://habr.com/ru/articles/947226/
#дизайн #obsidian #obsidianmd #obsidian_сортировка #обсидиан #parser #парсинг #парсер #python #python3
-
Парсер Гугл Карт: обзор, инструкция и сценарии для многопоточного парсера — готовое решение для парсинга отзывов
Google Maps - крупнейших источник данных о различных местах, начиная от точек общепита и заканчивая офисами корпораций. В карточках организаций и мест собраны названия, адреса, контакты, рейтинги и конечно же отзывы. Для кого-то (маркетологи, SEO-специалисты, аналитики) эти данные - кладезь полезной информации: с их помощью собираются базы потенциальных клиентов, анализируются конкуренты, кто-то даже проводит исследования рынка. А вот для кого-то (разработчики парсеров) - это настоящая боль. Или дорого, или сложно или и дорого и сложно одновременно. Google, конечно понимает повышенный интерес к своей базе и предоставляет официальный API для парсинга (Google Places API), но у него есть существенные ограничения - во-первых, он платный, что на больших объемах существенно бъет по бюджету, а во-вторых, тут есть лимиты по частоте запросов. Эти ограничения и побуждают компании прибегать к альтернативному подходу - парсингу отзывов (как в моем случае) или парсингу данных (в широком смысле) непосредственно с веб-версии Google Maps, минуя официальный API. Собственно я прошел этот путь ровно также, как его проходит большинство специалистов, кому нужны данные из Гугл Карт. Сперва АПИ, считаем экономику - понимаем что она не сходится - перестраиваем экономику и вместо оплаты лимитов Гугла, сокращаем траты за счет использования прокси и многопоточного парсера. Собственно из затрат у меня реально были только прокси от Proxyma , я использовал самый простой тариф 5$ за 1 Гб трафика, но в целом, если взять сразу 30Гб то цена снижается уже до 3$ за Гб трафика, что уже интереснее.
-
Вайбкодинг для маркетплейсов
Как удалось с помощью GitHub Copilot автоматизировать отслеживание изменений в базе знаний Ozon. Мой опыт создания собственного сервиса для мониторинга и сравнения обновлений без знаний программирования, с пошаговым описыванием создания архитектуры процесса. Вайбкодить далее
https://habr.com/ru/articles/929754/
#вайбкодинг #вайбкодинг #github_pages #cursor #github_copilot #ozon #автоматизация #парсер #краулер
-
Как я сделал программу для импорта и аналитики постов из Телеграм-каналов с помощью ChatGPT (и дарю её вам)
Это программа-парсер. Вы указываете Telegram-канал, выбираете период — и получаете Excel-табличку со всеми публикациями, просмотрами, реакциями, репостами и вовлечённостью. Хотите узнать, сколько всего текста опубликовал автор? Пожалуйста. Сколько платных звёздочек получил миллионник за 2024 год? Не вопрос. Хотите сформировать топ постов или сравнить эффективность разных форматов? Всё это — в один клик. Но эта статья — не просто про парсер. Она про путь: как я, не будучи программистом, сделал этот инструмент с помощью нейросети. Что получилось, какие были затыки и чему я научился в процессе. В конце — весь код и инструкция, как запустить парсер у себя.
-
CLL в ISPA: Семантические действия просто и мощно
CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.
https://habr.com/ru/articles/923526/
#парсер #генератор #CLL #абстракиця #ANTRL #Bison #разработка
-
CLL в ISPA: Семантические действия просто и мощно
CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.
https://habr.com/ru/articles/923526/
#парсер #генератор #CLL #абстракиця #ANTRL #Bison #разработка
-
CLL в ISPA: Семантические действия просто и мощно
CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.
https://habr.com/ru/articles/923526/
#парсер #генератор #CLL #абстракиця #ANTRL #Bison #разработка
-
CLL в ISPA: Семантические действия просто и мощно
CLL в ISPA — переносимый язык семантических действий для генераторов парсеров. Объявление переменных, условий и циклов, генерация AST и кода на C++ без привязки к языку парсера. Пример, разбор и сравнение с ANTLR, Bison.
https://habr.com/ru/articles/923526/
#парсер #генератор #CLL #абстракиця #ANTRL #Bison #разработка
-
Парсер на Python для сбора данных с сайта партнерки, которая продает аренду автомобилей по всему миру
Изначально, как оно всегда и бывает, была задача (не курица и не яйцо, а именно задача)! Задача вполне себе нетривиальная - подключиться к партнерской сети и начать продавать на сайте аренду автомобиле. Но у этой ниши есть одна особенность, в лоб, никто ничего не покупает, и нужна тонкая настройка с тонкой геопривязкой, вплоть до координат. Имеющиеся на рынке автопартнерки - либо сильно перемудренные, либо не имеют нормальной (читай простой) системы входа, а те которые упрощены - не имеют нормальной базы, ну или не хотят ее давать партнерам. Мне нужна была база городов и точек выдачи автомобилей и их координатная привязка.
-
Топ веб‑парсеров и API-сервисов для сбора данных: сравнение скорости, масштабируемости и обхода защит
Автоматический сбор данных (парсинг, или web scraping) стал неотъемлемой практикой для разработчиков, аналитиков и автоматизаторов. С его помощью получают массовую информацию с сайтов – от цен конкурентов и отзывов до контента соцсетей. Для этого разработано множество “парсеров” – библиотек, фреймворков и облачных сервисов, которые позволяют извлекать веб-данные программно. Одни решения требуются для быстрого парсинга статичных страниц, другие – для обхода сложной JavaScript-навигации, третьи – для получения данных через API. В этой статье я рассмотрю топ инструментов для парсинга – как открытых (Open Source) библиотек, так и коммерческих SaaS/API-сервисов – и сравню их по ключевым метрикам:
https://habr.com/ru/articles/893622/
#парсинг #парсинг_контента #парсеры #парсинг_сайтов #парсинг_json #парсинг_данных #парсинг_html #парсер_сайтов #парсинг_сайта #парсер
-
Парсер для подростков с помощью pyparsing
Привет, Хабр! Если ты подросток и начинаешь свой путь в программировании, или просто хочешь понять, как программы анализируют текст и превращают его в структуру, эта статья для тебя. Сегодня поговорим о том, что такое парсер, зачем он нужен и как с помощью библиотеки pyparsing создать свой собственный парсер — основу для мини‑языка. Разберём, как создать парсер для арифметических выражений, добавить поддержку скобок, встроить вычисление выражений, работать с переменными и обрабатывать ошибки.
-
Надоело просто добавлять запись в log-файл. Что еще можно сделать с помощью syslog-ng в Astra Linux SE?
Всем привет! Меня зовут Михаил, и в своей предыдущей статье я кратко осветил цепочку прохождения логов в ОС Astra Linux SE. Продолжаем! Любой человек, который регулярно сталкивается с темой логирования, рано или поздно задаётся вопросом: «А что ещё можно сделать с логами, помимо простого добавления записей в некоторый файл?» Поэтому сейчас поговорим о таком мощном инструменте обработки логов, как syslog-ng . Читать
https://habr.com/ru/companies/astralinux/articles/845936/
#логирование #syslogng #astralinux #linux #макросы #stdout #bashскрипт #парсер #субд #python
-
Надоело просто добавлять запись в log-файл. Что еще можно сделать с помощью syslog-ng в Astra Linux SE?
Всем привет! Меня зовут Михаил, и в своей предыдущей статье я кратко осветил цепочку прохождения логов в ОС Astra Linux SE. Продолжаем! Любой человек, который регулярно сталкивается с темой логирования, рано или поздно задаётся вопросом: «А что ещё можно сделать с логами, помимо простого добавления записей в некоторый файл?» Поэтому сейчас поговорим о таком мощном инструменте обработки логов, как syslog-ng . Читать
https://habr.com/ru/companies/astralinux/articles/845936/
#логирование #syslogng #astralinux #linux #макросы #stdout #bashскрипт #парсер #субд #python
-
Надоело просто добавлять запись в log-файл. Что еще можно сделать с помощью syslog-ng в Astra Linux SE?
Всем привет! Меня зовут Михаил, и в своей предыдущей статье я кратко осветил цепочку прохождения логов в ОС Astra Linux SE. Продолжаем! Любой человек, который регулярно сталкивается с темой логирования, рано или поздно задаётся вопросом: «А что ещё можно сделать с логами, помимо простого добавления записей в некоторый файл?» Поэтому сейчас поговорим о таком мощном инструменте обработки логов, как syslog-ng . Читать
https://habr.com/ru/companies/astralinux/articles/845936/
#логирование #syslogng #astralinux #linux #макросы #stdout #bashскрипт #парсер #субд #python
-
Синтаксический анализатор — модифицированный Shunting Yard
Алгоритм синтаксического анализа кода на основе Shunting Yard — скажем "нет" рекурсии Преимущество модифицированного Shunting Yard над рекурсивным спуском заключается в его способности эффективно работать с более сложными синтаксическими конструкциями и грамматиками, которые не поддерживаются рекурсивным спуском. Благодаря использованию стеков для управления состояниями и операторами, алгоритм избегает проблем с глубокой рекурсией и может обрабатывать конструкции, требующие динамического изменения контекста. Это делает его более универсальным и производительным решением для построения абстрактного синтаксического дерева (AST) без ограничений на тип грамматик, характерных для рекурсивного спуска.
https://habr.com/ru/articles/844252/
#анализатор_кода #парсер #компилятор #интерпретатор #алгоритм #shunting_yard #дейкстра #ast #abstract_syntax_tree
-
Компилятор за выходные: пишем собственный парсер
Изначально, когда я решил написать компилятор за выходные , я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY , довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend . Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.
-
Синтаксический анализатор на стеках и lambda-выражениях (Axolotl)
Синтаксический анализатор на стеках и lambda-выражениях (Axolotl) В этой статье рассматривается практическая реализация синтаксического анализатора, основанного на стеке состояний и lambda-выражениях. Такой подход упрощает обработку синтаксиса, делая его гибким и легко масштабируемым. В статье описана архитектура анализатора, от лексического анализа до правил обработки состояний и обработки ошибок. Обсудим, как использовать состояния для синтаксического анализа ключевых конструкций и продемонстрируем простые, но эффективные методы для управления состояниями. Эта реализация — отличный выбор для быстрого прототипирования и собственных учебных языков.
https://habr.com/ru/articles/856616/
#Аксолотль #Axolotl #язык_программирования #анализатор #синтаксический_анализ #синтаксис #shunting_yard #стек #парсер #парсеркомбинаторы
-
Как написать свой небольшой парсер на Python?
Всем привет. Я думаю, что некоторые задавались вопросом о том, как написать свой небольшой парсер на Python. В данной статье я хочу рассмотреть достаточно простой случай - это парсинг данных уже с готового датасета stackexchange.com . В дальнейшем уже можно будет работать с более сложными задачами. По факту, создание парсера можно разделить на два этапа: подготовка и кодинг.
https://habr.com/ru/articles/848478/
#парсер #парсеры #парсер_json #парсер_сайтов #парсер_форумов
-
Парсинг Амазона на easy без мам, пап и ипотек
Попался мне на глаза на просторах интернета скрипт, который позволяет парсить карточки товаров с Амазона. А мне как раз было необходимо решение подобной задачи. Я сломал себе голову в поисках того, как спарсить карточки товаров в Амазоне. Проблема в том, что у Амазона используется разные варианты дизайна под различную выдачу, в частности – если необходимо спарсить карточки по поисковому запросу «bags» - карточки будут расположены вертикально, как мне и нужно, а вот если взять, к примеру «t-shirts» - тут уже карточки расположены горизонтально, и с таким расположение скрипт выпадает в ошибку, он отрабатывает открытие страницы, но не хочет скроллить.
https://habr.com/ru/articles/839028/
#парсинг #парсер #парсинг_сайтов #амазон #python #парсер_цен_конкурентов