Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: очередной парсинг HTML странички
 
 автор: abra-labas   (22.12.2008 в 14:16)   письмо автору
 
 

Доброго времени суток.
собственно у меня 2 вопроса :о)

1. Мне нужно пропарсить эту http://saxon.dp.ua/?cont=calendar страницу и вытащить таблицу Календарь на неделю. На странице 2 пары тагов <body><body>. Нужные мне данные находятся между первой парой. <body>(.+?)</body> не срабатывает :о(

2. Я знаю, что это не ASP форум, но мало ли. может мне кто поможет :о). Не могу понять как я вывожу результат парсинга на свою страницу. Вот мой код.

String strURL = "http://saxon.dp.ua/?cont=calendar";
HttpWebRequest Request;
HttpWebResponse Response;
StreamReader st;
String strHTML;
Request = (HttpWebRequest)WebRequest.Create(strURL);
Request.Method = "GET";
Response = (HttpWebResponse)Request.GetResponse();
st = new StreamReader(Response.GetResponseStream(), Encoding.GetEncoding(1251));
strHTML = st.ReadToEnd();
st.Close();
Response.Close();
Request.Abort();

string outStr = string.Empty;
Regex r = new Regex("<body>(.+?)</body>", System.Text.RegularExpressions.RegexOptions.Multiline);

if (st!=null)
{
if (System.Text.RegularExpressions.Regex.IsMatch(strHTML, patern1))
,,,,
каким то образом нужную выборку внести в outStr.
,,,,
Console.WriteLine(outStr);
else
Console.WriteLine("Сбой на сервере");
}

  Ответить  
 
 автор: abra-labas   (22.12.2008 в 19:34)   письмо автору
 
   для: abra-labas   (22.12.2008 в 14:16)
 

люди!!!!!!!

помогите рег. выражение поправить :о((((

  Ответить  
 
 автор: xx77 176x220   (22.12.2008 в 20:32)
 
   для: abra-labas   (22.12.2008 в 19:34)
 

Возможно дело совсем не в шаблоне
, а просто вместо этого
if (System.Text.RegularExpr essions.Regex.IsMatch (strHTML, patern1))
нужно что-то вроде

x = .......match(...);
и разбирать структуру x

но как на asp это будет какими функциями точно не скажу


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

.+? на .+
возможно там не такой синтаксис как в Perl

  Ответить  
 
 автор: AcidTrash   (22.12.2008 в 21:12)   письмо автору
 
   для: xx77 176x220   (22.12.2008 в 20:32)
 

Да синтаксис, я думаю такой же, только не пойму зачем выбирать все из тегов <body>, когда надо вытащить какой-то календарь.

P.S С ASP.NET сталкивался, насчет web-компоненты для 1С(конкретно программинг на C#), но насчет обработок регулярок не сталкивался, так как и незачем было.

  Ответить  
 
 автор: abra-labas   (23.12.2008 в 11:40)   письмо автору
 
   для: AcidTrash   (22.12.2008 в 21:12)
 

там динамическая страница так построена, что между первыми тегами <body> только календарик.

  Ответить  
 
 автор: abra-labas   (23.12.2008 в 11:42)   письмо автору
 
   для: xx77 176x220   (22.12.2008 в 20:32)
 

<body>(.+)</body> выбирает от первого<body>, до закрытия второго </body> .
<body>(.+?)</body> выбирает обе пары.

Как мне только выдернуть только то, что между первой парой стоит? Т.е. сами теги body мне не нужны.

впрочем if тоже разберу :о)

  Ответить  
 
 автор: AcidTrash   (23.12.2008 в 13:39)   письмо автору
 
   для: abra-labas   (23.12.2008 в 11:42)
 

Возможно так подойдет
#<body>.*?<div align=\"Center\"><h2>.+?</body>#si

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования