singlepost

Парсинг HTML << На главную или назад  

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

25 ответов в теме “Парсинг HTML”

  1. 25
    Андрей Хлебников ответил:

    Если приспичило на плюсах, то повторюсь – ANTLR. На оф. сайте найдешь готовое описание HTML. Удачи… :)
    //www.antlr.org

  2. 24
    Павел Потапов ответил:

    #13:
    wscript позволяет юзать жабаскрипт вне браузера ;)
    Буквально пару дней назад писал скрипт для скачивания xml и вытаскивания из него данных. ;)
    Сохранение в файл делал тривиально… через параметр ">" командной строки.

  3. 23
    Дмитрий Соколов ответил:

    #22:

    POSIX-реги – это ДА :) Но речь-то в первую очередь о PCRE.

    #23:

    Дык сам вопрос подразумевает что неудобно ещё ни на чём :)

  4. 22
    Даниил Бяльский ответил:

    +1) Абсолютно согласен. Пишите на том, на чем удобней – это конструктивное предложение.)

  5. 21
    Dain Here ответил:

    реги, сцука, своеобразные…

    может у меня какого-то угла на башке не хватает, но когда я берусь за синтаксис регов (к примеру, posix), то если не пользуюсь им в течении 2-3 месяцев, забываю все нафих подчистую! wtf?! O_o

  6. 20
    Дмитрий Соколов ответил:

    "Лучше день потерять, потом за пять минут долететь!" (С) ;)

    Просто задача такая, что исполняющий её человек в принципе ДОЛЖЕН хотя бы минимально знать перл и регэкспы, а иначе он занимается немного не своим делом, равно как немного не тем будет забивать гвозди.

    Ведь реально на том же перле это будет не столь уж большой скрипт, в то время как на C++ это целая простыня исходников и как минимум пара дополнительных библиотек.

  7. 19
    Александр Дзюба ответил:

    превращается в очередной холивар.

    на самом анекдот про реги был в тему – делать надо на том на чем удобнее. Нафига учить человеку перл если он сделает не хуже на бейсике или плюсиках.

  8. 18
    Дмитрий Соколов ответил:

    Это если php-cgi вообще есть :) А если он исключительно как mod_php поставлен? Мне пришлось wget-ом с сохранением в /dev/null извращаться :) ) Опять же, следующий вопрос – а если обработка сайтов продлится две минуты? ПХП имеет привычку секунд через 30 совершать харакири.

    Перл тут надёжнее…

  9. 17
    Александр Дзюба ответил:

    насколько я помню там был параметр время жизни скрипта

  10. 16
    Александр Дзюба ответил:

    /usr/local/bin/php /home/user/parser/script.php в crontab :)

  11. 15
    Дмитрий Соколов ответил:

    2 Даниил nevermind Бяльский

    Не буду перечислять всего, ответь лишь на один простой вопрос: а как ты его запустишь? :)

    Извратиться можно, да. Сам извращался на хостинге, на котором только PHP и был. Но не нужно привыкать к извращениям :)

  12. 14
    Даниил Бяльский ответил:

    чем PHP не вариант, объясните недалекому PHP-кодеру?)

  13. 13
    Дмитрий Соколов ответил:

    Один существенный минус – жабоскрипт-то работает сугубо внутри браузера и к сохранению данных доступа никакого не имеет :)

    Проще говоря – сам по себе жабоскрипт даже не имеет средств работы с HTML. Только доступ к объектам окружения.

    Перл, перл…

  14. 12
    Alexander Zubakov ответил:

    Парсер на C++ – это извращение, какое-то. Perl, Python- то, что нужно. Для каждой задачи используйте подходящий инструмент, не надо упираться в один язык и кодить на нем все подряд.

  15. 11
    Павел Потапов ответил:

    Про перл и питон не скажу точно… не знаю. Но javasсript для этой задачи точно подойдет больше чем плюсы, имхо. Впрочем, по слухам, перл с питоном еще лучше справляются.

  16. 10
    Дмитрий Соколов ответил:

    > MSHTML

    Зачеееееем? О.о Разработку утилитки на пару тысяч человеко-часов продлить? Памяти метров 800 скушать? )))

  17. 9
    Антон Щиров ответил:

    MSHTML

  18. 8
    Дмитрий Соколов ответил:

    Нужен именно HTML-парсер – там такой tag soup бывает, что любойxml-парсер руганётся на невалидность и сдохнет. Уж и вовсе проще регэкспами иногда.

  19. 7
    Жека Кирпичев ответил:

    libxml вроде бы умеет парсить и html, если постараться.

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

  20. 6
    Дмитрий Соколов ответил:

    Да богу ж ради, юзай что хочешь. Надо для такой простой задачи C++ – пиши два месяца утилиту на C++, никто не возражает :)

    Не хочешь брать любой язык с хорошей заточкой под web (perl, python) – не бери, дело барское. Я перловский HTML::Parser никому не навязываю)

  21. 5
    Андрей Евсиков ответил:

    Только Perl!! php нивкоимслучае!!!

  22. 4
    Андрей Хлебников ответил:

    ANTLR вам в помощь… :)

  23. 3
    Руслан Шамюнов ответил:

    Некоторым программистам, когда они сталкиваются с какой-то проблемой, приходит в голову такая мысль
    — О, я знаю! Это можно сделать с помощью регулярных выражений!
    Это означает, что у этого програмиста теперь ДВЕ проблемы. (с)

    Не использовал Perl. В чем профит использовать именно его?

  24. 2
    Александр Дзюба ответил:

    perl, php

  25. 1
    Дмитрий Соколов ответил:

    Perl! Perl!!! Perl, и не сношать себе моСК!

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.