Что нового

Содержимое между тегами

andr_mozg

Новичок
Сообщения
15
Репутация
0
есть вот такой сайт HTML с нее

Код:
$sData = InetRead("http://m.pogoda.mail.ru")

ConsoleWrite($sData)


кусок кода

Код:
<div class="inner">

<h1>Москва&#032;<a href="/citychange.xhtml?city=1460">изменить</a></h1>

<div class="forecastblock">
<h3>9.06, четверг</h3>
	<div class="forecast">
		Сейчас<img src="/img/new/pict_weather_med_5.gif" width="41" height="41" alt="пасмурно" /><span class="spec">+16&deg;</span>
	</div>
	<div class="forecasttext">
		<div><strong>745</strong>&#032;mmHg, <strong>84</strong>%, <strong>СВ 1</strong>&#032;м/с</div>
		пасмурно
	</div>
	<div class="forecast">
		День<img src="/img/new/pict_weather_med_8.gif" width="41" height="41" alt="дождь, гроза" /><span class="spec">+22&deg;</span>
	</div>
	<div class="forecasttext">
		<div><strong>742</strong>&#032;mmHg, <strong>70</strong>%, <strong>СВ 4</strong>&#032;м/с</div>
		дождь, гроза
	</div>
	<div class="forecast">
		Вечер<img src="/img/new/pict_weather_med_n9.gif" width="41" height="41" alt="переменная облачность, дождь" /><span>+17&deg;</span>
	</div>
	<div class="forecasttext">
		<div><strong>742</strong>&#032;mmHg, <strong>95</strong>%, <strong>ЮВ 2</strong>&#032;м/с</div>
		переменная облачность, дождь
	</div>
</div>
помогите вырезать хотябы не все сразу а кусками

значения между тегами
<h3> и разобрать тег
<div class="forecast"> Cейчас<img src="/img/new/pict_weather_med_5.gif" width="41" height="41" alt="пасмурно" /><span class="spec">+16&deg;</span>

чтобы был вида = Сейчас|пасмурно|+16

спасибо



Добавлено:
Сообщение автоматически объединено:

пример не удачный
если пользоватся
Код:
#include <INet.au3>
$sText = _INetGetSource("http://m.pogoda.mail.ru")


то наченает чтото получатся
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
;нужно для показа/преобразования массива
#include <array.au3>
;без кэша
$sData = InetRead("http://m.pogoda.mail.ru", 1)
;там utf-8
$sData = BinaryToString($sData, 4)
;монструозо
$sPattern = '(?s)(Сейчас).*?alt="?([^"]+)"?.*?>([+-]+\d+)' ;
$aA = StringRegExp ($sData, $sPattern, 3)
;смотрим массив, если он есть )
;_ArrayDisplay($aA)
$sString = _ArrayToString($aA, '|')
ConsoleWrite ($sString & @CRLF)
 
Автор
A

andr_mozg

Новичок
Сообщения
15
Репутация
0
все ок, только слово Сейчас это не константа

вот так тоже интересный результат
Код:
$sPattern = '(?s).*?alt="?([^"]+)"?.*?>([+-]+\d+)'
 

axlwor

Скриптер
Сообщения
657
Репутация
147
для меня константа. можешь заменить (Сейчас) на (Сейчас|День|Вечер)
 
Автор
A

andr_mozg

Новичок
Сообщения
15
Репутация
0
так в этом то и смысл чтобы собрать сразу все значения, и это недолжна быть константа.

если убрать ее то получаем почти то что нужно

не все получается выдернуть
Код:
<div class="forecast">
		День<img src="/img/new/pict_weather_med_8.gif" width="41" height="41" alt="дождь, гроза" /><span class="spec">+22&deg;</span>
Код:
$sPattern = '.*?alt="?([^"]+)"?.*?>([+-]+\d+)'



на выходи имеем - пасмурно|+17|дождь, гроза|+22|переменная облачность, дождь|+17

а слов Сейчас, день и НОчь мы не получаем
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
#include <array.au3>
$sData = InetRead("http://m.pogoda.mail.ru", 1)
$sData = BinaryToString($sData, 4)
$sPattern = '(?s)<h1>(.*?)\&.*?<h3>(.*?)<'
$aA = StringRegExp ($sData, $sPattern, 3)
;_ArrayDisplay($aA)
$sString = _ArrayToString($aA, '|')
$sPattern = '(?s)(Сейчас|День|Вечер).*?alt="?([^"]+)"?.*?>([+-]+\d+)'
$aA = StringRegExp ($sData, $sPattern, 3)
;~ _ArrayDisplay($aA)
$sString &=  '|' & _ArrayToString($aA, '|')
ConsoleWrite ($sString & @CRLF)

итого
Код:
Москва|9.06, четверг|Сейчас|пасмурно|+17|День|дождь, гроза|+22|Вечер|переменная облачность, дождь|+17
 
Автор
A

andr_mozg

Новичок
Сообщения
15
Репутация
0
как она себя поведет когда будит не три значения а например два(сейчас и вечер)
или еще будит значение НОЧЬ и УТРО
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Ночи и утра я не вижу, но будет работать (Сейчас|День|Вечер|Ночь|Утро|Сумерки|Сон)
 
Автор
A

andr_mozg

Новичок
Сообщения
15
Репутация
0
спасибо, начинаю портехоньку в куривать
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Понял о чем ты. Теперь ловит без слов сегодня, завтра, сумерки
Код:
#include <array.au3>
;~ $sData = InetRead("http://m.pogoda.mail.ru", 1)
$sData = InetRead("http://m.pogoda.mail.ru/index.xhtml?city=5432", 1)
$sData = BinaryToString($sData, 4)
$sPattern = '(?s)<h1>(.*?)\&.*?<h3>(.*?)<'
$aA = StringRegExp ($sData, $sPattern, 3)
;_ArrayDisplay($aA)
$sString = _ArrayToString($aA, '|')
$sPattern = '(?s)forecast"?>\s*(.+?)<img.*?alt="?([^"]+)"?.*?>([+-]+\d+)'
$aA = StringRegExp ($sData, $sPattern, 3)
;~ _ArrayDisplay($aA)
$sString &=  '|' & _ArrayToString($aA, '|')
ConsoleWrite ($sString & @CRLF)

Код:
Крайстчерч|9.06, четверг|Сейчас|облачность с просветами|+9|Вечер|переменная облачность|+8|Завтра|переменная облачность|+10
 
Верх