Как погоду настроить
Модератор: immortal
-
- Сообщения: 14
- Зарегистрирован: Вт янв 15, 2013 12:33 pm
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Как погоду настроить
может кто подскажет, где почитать про шаблоны поиска? или на примере опишет, что значит город<\/a><br>(.+?)<br \/><a в настройках по-умолчанию?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Как погоду настроить
Для вырезания полезных данных используется PHP-функция preg_match (фактически, шаблоны поиска = регулярные выражения), поэтому можно искать в интернете примеры её использования.
Например,
http://phpclub.ru/detail/article/regexp_1
Ну или больше вариантов через Яндекс
Например,
http://phpclub.ru/detail/article/regexp_1
Ну или больше вариантов через Яндекс
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 0
- Поблагодарили: 6 раз
Re: Как погоду настроить
Это регулярные выражения, и обратными слэшами \ экранируются слэши прямые /, иначе они будут рассмтриваться как границы выражения. Вобщем, regexper.com вам в помошь.vgolinsky писал(а):спасибо огромное. температуру показывает. я так понимаю, мы ищем в html коде нужные данные, а вместо значения температуры ставим (.+?)
А что значит "\" в <\/div>?
Либо расширять условия поиска, либо в регулярном выражении выделять вторую группу типаvgolinsky писал(а):уже столько нагуглил про маски поиска, что в голове все перемешалось....
и как, например, посмотреть ту же температуру на завтра, там тот же код <div class="t_0 ftemp"> ?
<div class="t_0 ftemp">.+?ºC<\/div>.+?<div class="t_0 ftemp">(.+?)ºC<\/div>
-
- Сообщения: 14
- Зарегистрирован: Вт янв 15, 2013 12:33 pm
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: Как погоду настроить
Спасибо, буду грызть гранит регулярных выражений )))anemcov писал(а):Это регулярные выражения, и обратными слэшами \ экранируются слэши прямые /, иначе они будут рассмтриваться как границы выражения. Вобщем, regexper.com вам в помошь.vgolinsky писал(а):спасибо огромное. температуру показывает. я так понимаю, мы ищем в html коде нужные данные, а вместо значения температуры ставим (.+?)
А что значит "\" в <\/div>?Либо расширять условия поиска, либо в регулярном выражении выделять вторую группу типаvgolinsky писал(а):уже столько нагуглил про маски поиска, что в голове все перемешалось....
и как, например, посмотреть ту же температуру на завтра, там тот же код <div class="t_0 ftemp"> ?
<div class="t_0 ftemp">.+?ºC<\/div>.+?<div class="t_0 ftemp">(.+?)ºC<\/div>
Re: Как погоду настроить
Как дернуть температуру с этой страницы http://ru-meteo.ru/cehov в веб-переменную? Я че-то не могу понять как строить шаблон поиска.
-
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 0
- Поблагодарили: 6 раз
Re: Как погоду настроить
Вот писал человеку в качестве помощи. Может поможнт
Либо можно открыть просмотр исходного кода страницы прямо в браузере, если ваш браузер такое позволяет.
Дальше - ищем интересующий вас кусок в исходном коде
Копируем участок текста вместе с тэгами. Я для примера беру такой кусок
Теперь заменяем в этом куске интересующую нас температуру на последовательность символов - "скобка"-"точка"-"плюс"-"знак_вопроса"-"скобка". Это регулярное выражение, означающее:
- "точка" - любой символ
- "плюс" - повторяющийся любое количество раз...
- "знак_вопроса" - ...либо вообще ни разу
- обрамление в скобки - мы хотим получить выражение как результат нашей операции. Если выражение в скобки не брать - оно просто будет одним из условий поиска интересующего нас места.
И последний этап - "экранирование" служебных символов (всякие слэши, треугольные скобки и т.п.) обратным слэшем.
В итоге получаем...
Эту строку и вставляем в шаблон поиска.
Теперь программа приопросе веб-переменной скачает страницу по вашему адресу и будет искать в ней подстроку, которая:
1. Начинается с
2. затем идут несколько (а может и ни одного) символов
3. оканчивается на
Найдя такую строку, вернем то, что соответствовало 2-му пункту, то есть как раз значение температуры.
Если условия поиска будут не очень жесткими - может возникнуть ситуация, что на странице найдется несколько таких строк. Что произойдет в этом случае - не знаю, не экспериментировал.
Все, что я написал - проверил у себя - работает.
для начала - сохраняем страницу себе на диск в формате html и открываем каким-нить текстовым редактором (который не портит оформление - не рекомендую использовать встренный в Винду Блокнот - лучше использовать что-нить по специализированнее).Не могу прикрутить с сайта погоды http://m.rp5.ru/8667/ru следующий текст "В 18:00 на метеостанции было -4.6 ºC, облачность 100%, давление 750.5 мм рт. ст., влажность 80%, ветер, дующий с западо-юго-запада, 1 м/сек. Ливневый снег слабый в срок наблюдения или за последний час."
Либо можно открыть просмотр исходного кода страницы прямо в браузере, если ваш браузер такое позволяет.
Дальше - ищем интересующий вас кусок в исходном коде
Копируем участок текста вместе с тэгами. Я для примера беру такой кусок
Код: Выделить всё
на метеостанции было <span class="t_0" style="">-5.6 ºC, </span>
Код: Выделить всё
(.+?)
- "точка" - любой символ
- "плюс" - повторяющийся любое количество раз...
- "знак_вопроса" - ...либо вообще ни разу
- обрамление в скобки - мы хотим получить выражение как результат нашей операции. Если выражение в скобки не брать - оно просто будет одним из условий поиска интересующего нас места.
И последний этап - "экранирование" служебных символов (всякие слэши, треугольные скобки и т.п.) обратным слэшем.
В итоге получаем...
Код: Выделить всё
на метеостанции было \<span class="t_0" style=""\>(.+?) ºC, \<\/span\>
Теперь программа приопросе веб-переменной скачает страницу по вашему адресу и будет искать в ней подстроку, которая:
1. Начинается с
Код: Выделить всё
на метеостанции было <span class="t_0" style="">
3. оканчивается на
Код: Выделить всё
ºC, </span>
Если условия поиска будут не очень жесткими - может возникнуть ситуация, что на странице найдется несколько таких строк. Что произойдет в этом случае - не знаю, не экспериментировал.
Все, что я написал - проверил у себя - работает.
- Рейтинг: 2.33%
Re: Как погоду настроить
anemcov, Спасибо, расписали очень подробно...
Но по аналогии не получается выдернуть температурное значение с http://ru-meteo.ru/cehov
Выбран именно этот сайт, т.к. там более точное значение температуры в отличии от всяких яндексов и прочего.
Получается, что нужна эта строка <td class="temp t-1">−11°</td>
Заэкранировал \<td class="temp t-1"\>(.+?)\<\/td\>
Но эффекта нет
Но по аналогии не получается выдернуть температурное значение с http://ru-meteo.ru/cehov
Выбран именно этот сайт, т.к. там более точное значение температуры в отличии от всяких яндексов и прочего.
Получается, что нужна эта строка <td class="temp t-1">−11°</td>
Заэкранировал \<td class="temp t-1"\>(.+?)\<\/td\>
Но эффекта нет
-
- Сообщения: 211
- Зарегистрирован: Вт янв 08, 2013 11:50 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 0
- Поблагодарили: 6 раз
Re: Как погоду настроить
Вроде все правильно. Обратил внимание, что и без маскировки уголков работает. Вот только у меня в коде страницы почему-то t-2. Проверил - работает.Devils писал(а):anemcov, Спасибо, расписали очень подробно...
Но по аналогии не получается выдернуть температурное значение с http://ru-meteo.ru/cehov
Выбран именно этот сайт, т.к. там более точное значение температуры в отличии от всяких яндексов и прочего.
Получается, что нужна эта строка <td class="temp t-1">−11°</td>
Заэкранировал \<td class="temp t-1"\>(.+?)\<\/td\>
Но эффекта нет
Код: Выделить всё
<td class="temp t-2">(.+?)°<\/td>
Re: Как погоду настроить
Спасибо, о добрый человек
Меня это тоже смущает.. Как бы завтра утром она не сменилась допустим на t-0, и тогда выборка не заработает.Вот только у меня в коде страницы почему-то t-2