LINUX.ORG.RU

HTML parsing


0

0

И снова здравствуйте. Скажите, пожалуйста, есть ли какие методы для парсинга HTML страниц? Интересует не только и не столько преобразование HTML в дерево вида: [<html>] => [<head>] => [<title> = 'Some title'] и т.д. сколько парсинг для получения содержимого страницы. То есть, например, я хочу получать курс валют с rbc.ru, или грабить заголовки свежих постингов с какого-то сайта (который не предоставляет никакого RSS). Есть ли такие решения? Если да, то ткните, пожалуйста, носом в доки (алгоритм) и/или подобные программы/скрипты (предпочтительно на C или PHP, но не принципиально).

Заранее благодарен.


Ответ на: Re: HTML parsing от SatanClaus

Re: Re: HTML parsing

Я тоже интересовался этим вопросом ... Но так ничего и ненашёл, судя по всему без RCC невозможно ...

SpaD
()
Ответ на: Re: HTML parsing от SatanClaus

Re: Re: HTML parsing

Я бы даже сказал, что слишком далеко... =/

xlex
() автор топика
Ответ на: Re: Re: HTML parsing от SpaD

Re: Re: Re: HTML parsing

Должно быть возможно... Только вот не знаю с какого конца подступиться...

xlex
() автор топика

Re: HTML parsing

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

Выдирать курсы валют c www.rbc.ru на перле в одну строчку можно так:

perl -MLWP::Simple -e '$x.=get "http://www.rbc.ru"; do{$a=$1;$a=~s!<.*?>|\&nbsp;!!ig; print $a }if $x=~m!<TR>.*?USD ЦБ РФ(.*?)</TR>!igs'

эту строку написать - 5 минут..

еще, онлайновый парсер новостей - по моему нет такого, хотя что-то было на цпане. Проще самому, _зная_ регекспы...

vilfred ☆☆
()
Ответ на: Re: HTML parsing от vilfred

Re: Re: HTML parsing

Thanks за совет про языки. Как я понимаю, ничего универсального нет и каждый раз надо писать свой скрипт? А что посоветуешь по регэкспам и по какому слову в цпане искать?

xlex
() автор топика
Ответ на: Re: Re: HTML parsing от xlex

Re: Re: Re: HTML parsing

"Как я понимаю, ничего универсального нет и каждый раз надо писать свой скрипт?" вообще да, т.к. если дизайнеры сайта изменят хоть чуть чуть html код странички, то тогда сишную программу изменить значительно сложнее чем php или perl'овую.

по регекспам книжку лучше Advanced Programming in Perl или справочник perl Стивена Холзнера, там глава была про регекспы.

vilfred ☆☆
()
Ответ на: Re: Re: Re: HTML parsing от vilfred

Re: Re: Re: Re: HTML parsing

Ок. В PHP есть Perl-овские регеэкспы - они, по идее, должны быть лучше чем POSIX-овские, то есть такие же как Perl-овские, можешь прокомментировать их как-нибудь?

xlex
() автор топика
Ответ на: Re: Re: Re: Re: HTML parsing от xlex

Re: Re: Re: Re: Re: HTML parsing

ну, я php не писал... в принципе регекспы на уровне выцепить html код там есть (ибо как то нашел php'шное решение даже :). Может быть там нет конструкций вида s!(xxx)!$1?"yyy":"zzz"! или s!(xxx)\1!"blahblag"!

имхо, должно для парсинга хватить. Но где найтиописание именно php'шных регекспов - просто не знаю. (наверное google)

vilfred ☆☆
()
Ответ на: Re: HTML parsing от chucha

Re: Re: HTML parsing

Как я понял, он просто вытягивает содержимое одного тега или хтмл структуру, а это не совсем то, что надо.

Нужно чтобы скрипт, например, мониторил индексную страницу linux.org.ru, и при появлении новых новостей говорил - мужик, тут такие-то новые темы + тут в таких-то темах добавилось комментариев.

xlex
() автор топика
Ответ на: Re: Re: Re: Re: Re: HTML parsing от vilfred

Re: Re: Re: Re: Re: Re: HTML parsing

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

xlex
() автор топика
Ответ на: Re: Re: Re: Re: Re: Re: Re: Re: Re: HTML parsing от SpaD

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: HTML parsing

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

xlex
() автор топика
Ответ на: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: HTML parsing от xlex

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: HTML parsing

Вот глянь что нашел в гугле newsgrabber php:

http://www.google.com.ru/search?hl=ru&ie=UTF-8&oe=UTF-8&q=newsgra...

newsgrabber perl:

http://www.google.com.ru/search?hl=ru&ie=UTF-8&oe=UTF-8&q=newsgra...

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

vilfred ☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.