Comments 13
Для теста "из жизни" сколько времени заняло скачивание этих страниц?
Привет!
Страницы были скачены заранее. Каждая страница загружается в память и потом отдается парсерам.
Если конкретно ответить на вопрос — не могу сказать, замеры не делались.
Страницы были скачены заранее. Каждая страница загружается в память и потом отдается парсерам.
Если конкретно ответить на вопрос — не могу сказать, замеры не делались.
Интересно посмотреть на порядок цифр. Предположим что в среднем загрузка страницы происходит за 0,5 сек. Загрузка всех страниц займет 233 сек.
В целом получилось наглядная иллюстрация подхода: если где-то хотим ускорить, то где-то придется потратить память.
В целом получилось наглядная иллюстрация подхода: если где-то хотим ускорить, то где-то придется потратить память.
Было бы интересно добавить https://metacpan.org/pod/HTML::TreeBuilder раз уж разные языки тестите.
Извиняюсь за глупый вопрос, но всё же интересно. А Ваш парсер может парсить HTML странички с JavaScript так, чтобы в результате получить дерево с учётом их работы? Т.е. если в HTML есть ссылка на JavaScript файл, который генерит код вставки картинки и прочего контента, то будет ли в дереве тег этого изображение вместе с остальными атрибутами (src, width, height, alt, title, ...) или будет только тег скрипта?
Привет!
Вполне нормальный вопрос. Нет, это только парсер с заделом на будущее. То есть он делался с мыслью о связке с JavaScript движком. Этот функционал ожидается в будущем.
Вполне нормальный вопрос. Нет, это только парсер с заделом на будущее. То есть он делался с мыслью о связке с JavaScript движком. Этот функционал ожидается в будущем.
А есть ли такие уже сейчас? Желательно на C/C++
WebKit.
Собственно ради этого и был начат проект myhtml. Расчет (быстрый расчёт) DOM на C без зависимостей (Render Tree). У меня не хватит времени и сил сделать JS engine, он будет опционально подключаем.
Собственно ради этого и был начат проект myhtml. Расчет (быстрый расчёт) DOM на C без зависимостей (Render Tree). У меня не хватит времени и сил сделать JS engine, он будет опционально подключаем.
Из простого для быстрого старта можно использовать классы Qt WebKit(до 5.6) или Qt WebEngine. Из них можно получить конечный html код, который можно распарсить myhtml/gumb.
Отличный результат!
Спасибо за исходники бенчмарка, пробую повторить. Подскажите, как вы строили результат? CSV-файлы получились, хочется график.
Sign up to leave a comment.
Парсеров всем! Анализируем и тестируем существующие HTML парсеры