Форум сайта python.su
я вобщем не особо шарю питоньи регулярки
вотя начал:
>>> r=re.compile(r'^<operator id=“(\d+)” name=“(\w+)” label=“(\w+)” tld=“(\w+)” country=“(\w+)” publish=“(\d+)”</operator>$', re.IGNORECASE)
>>> s=urllib2.urlopen('http://www.logofon.ru/xml/ips.xml').read()
>>> re.findall(r,s)
и пусто
хз может чего не так сделал,
кстати там еще ипы нужно забрать их я вобще хз как
Отредактировано (Июль 14, 2011 23:37:32)
Офлайн
сделал вот так так интерпритатор завис нафиг :/
>>> r=re.compile(r'<operator id=“(\d+)” name=“(.*?)” label=“(.*?)” tld=“(.*?)” country=“(.*?)” publish=“(\d+)”</operator>', re.IGNORECASE | re.DOTALL)
>>> re.findall(r,s)
Офлайн
а все , отбой я раздуплился. оно висело бо я забыл че там еще куча ипов
в общем вот так работает
r=re.compile(r'<operator id=“(\d+)” name=“(.+?)” label=“(.+?)” tld=“(.+?)” country=“(.+?)” publish=“(\d+)”.*?</operator>', re.IGNORECASE | re.DOTALL)
осталось ипы забрать
Офлайн
забрал
вот вобщем если надо кому, гугл смотри сюда “ip база логофона python”
import urllib2,re
def cp1251(x):
return x.decode('cp1251')
re_ip=re.compile(r'<operator id=“(\d+)” name=“(.*?)” label=“(.*?)” tld=“(.*?)” country=“(.*?)” publish=“(\d+)”.+?<range (.*?)</operator>', re.IGNORECASE | re.DOTALL)
data=urllib2.urlopen('http://www.logofon.ru/xml/ips.xml').read()
x = re.findall(re_ip,data)
ip=x // это массив с ипами обращатся так: x
operator_id=int(x)
name=cp1251(x)
label=x
tld=x
country=cp1251(x)
publish=x
Отредактировано (Июль 15, 2011 17:10:51)
Офлайн