Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2011, 12:48   #1
Backo
Новичок
Джуниор
 
Регистрация: 15.09.2011
Сообщений: 1
По умолчанию парсинг сайта на bash

Привет народ!
Тут на ПКС задали прогу написать. Надо взять с сайта ria.ru правую колонку новстей и чтобы прога выводила на экран новости из этой колонки. С парсингом сталкиваюсь первый раз, так что даже не знаю с чего начать...
Backo вне форума Ответить с цитированием
Старый 15.09.2011, 12:53   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

...........
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 15.09.2011 в 12:57.
Mad_Cat вне форума Ответить с цитированием
Старый 15.09.2011, 17:24   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Я не знаю как решить задачу не знаю bash, но возможно некоторые мои идеи, появившиея после поиска, помогут


Вывод страницы целиком:
Код:
cat | wget http://ria.ru/  | while read a; do VARIABLE=a    echo VARIABLE; done
Pattern matching в bash будет выглядеть примерно так

Код:
VARIABLE=a

if [[ "$VARIABLE" =~ "time-text-inline-time(.*?)<\/span>(.*?)<\/a>(.*)" ]]
then
    echo "matched"
else
    echo "nope"
fi
Регулярное выражение стиля PCRE для этой задачи:
Код:
time-text-inline-time.*?<\/span>(.*?)<\/a>(.*)/
Отмечу то на ria.ru все в одной строке поэтому нужен цикл, а не условное выражение.
Скобки обозначают часть строки, которую запомнили: во первой - искомая новость во второй запомнена оставшаяся часть строки, в которой еще могут быть новости и к ней шаблон поиска применяется еще раз.

На Perl парсинг файла будет такой:
Код:
while(<TY>){ $str=$_; while($str=~/time-text-inline-time(.*?)<\/span>(.*?)<\/a>(.*)/) {  print $2."\n";  $str=$3; }};
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсинг данных с bash.org.ru ivannes Работа с сетью в Delphi 6 29.03.2013 20:52
парсинг сайта CodeNOT PHP 1 21.03.2011 09:48
Парсинг сайта AnToHa-KiLL Общие вопросы Delphi 3 30.06.2009 08:22