<div class="b-content-item__title"> <a href="http://pogoda.yandex.ru/nalchik/"class="b-link">Погода</a> <a href="http://pogoda.yandex.ru/nalchik/"title="облачно"class="b-weather__icon_link"> <i class="b-inline b-weather__icon b-weather__icon_ovc"></i> </a> <a href="http://pogoda.yandex.ru/nalchik/"class="b-link_black_novisit">+11 °С</a> </div> <div class="b-weather__info"> <a href="http://pogoda.yandex.ru/nalchik/"class="b-link_black_novisit">ночью +9</a> <a href="http://pogoda.yandex.ru/nalchik/"class="b-link_black_novisit">утром +7</a> </div>
получаю я его с Yandex.ru, как проще всего вытащить значения:
облачно
+11 °С
ночью +9
утром +7
нужен только шаблон, я в Python новичёк и много не знаю, по этому решил и код показать, может поправите меня или посоветуете как лучше сделать то или иное (Python v2.7.3).
import urllib2, re, time class Weather(object): def __init__(self): self.__weather__ = [] self.__rgst__ = urllib2.Request('http://www.yandex.ru/') self.__page__ = urllib2.urlopen(self.__rgst__) self.__read__ = self.__page__.read() self.__page__.close() self.__main__ = re.findall(r'<div class=["|\']b-content-item__title["|\']>(.*?)</div>', self.__read__) self.__sts__ = re.findall(r'title=["|\'](.*?)["|\']', self.__main__[0]) self.__now__ = re.findall(r'<a href=["|\'].*?["|\'].*class=["|\']b-link_black_novisit["|\']>(.*?)</a>', self.__main__[0]) self.__weather__.append(self.__sts__[0].decode('utf-8')) self.__weather__.append(self.__now__[0].decode('utf-8')) self.__main__ = re.findall(r'<div class=["|\']b-weather__info["|\']>(.*?)</div>', self.__read__) for data in re.findall(r'<a href=["|\'].*?["|\'].*?class=["|\']b-link_black_novisit["|\']>(.*?)</a>', self.__main__[0]): self.__weather__.append(data.replace(' ', ' ').decode('utf-8')) def get(self): return self.__weather__ weather = Weather() for i in weather.get(): print(i) time.sleep(5)