продолжаем страдать херней.
# -*- coding: utf-8 -*-
__author__ = 'DarkTwin'
import urllib
import lxml.html
import time
start = time.time()
page = urllib.urlopen('test.html')
pageWritten = page.read()
pageReady = pageWritten.decode('utf-8')
PR = lxml.html.document_fromstring(pageReady)
ab_name = PR.xpath('//td[@class="s3"]/text()')
data = PR.xpath('//td[@class="s13"]/text()')
dop = PR.xpath('//td[@class="s14"]/text()')
cost = PR.xpath('//td[@class="s15"]/text()')
time_val = dop[0:len(dop):6]
ab_namber = dop[1:len(dop):6]
time_cost = dop[2:len(dop):6]
type_of_service = dop[4:len(dop):6]
ab_name = [v for i,v in enumerate(ab_name) if v not in ab_name[:i]]
type_of_service = ['1' if x == u'Исходящие местные вызовы' else '1' if x == u'Исходящие междугородные вызовы' else '2' if x == u'Входящие вызовы' \
else 'S' if x == u'Входящие SMS-сообщения' else 'S' if x == u'Исходящие SMS-сообщения' else 'S' if x == u'SMS:Входящие'\
else 'S' if x == u'SMS:Исходящие' else '1' if x == u'Входящая связь' else 'M' if x == u'Исходящие MMS-сообщения'\
else 'G' if x == u'Мобильный Интернет (пакетная передача данных)' else 'G' if x == u'Пакетная передача данных'\
else 'M' if x == u'Входящие MMS-сообщения' else 'T' if x == u'Технологические вызовы' \
else '3' if x == u'Входящие вызовы, автоматически переадресованные с доп. городского номера на федеральный номер' \
else 'S' if x == u'Услуги на коротких номерах (исходящие SMS-сообщения)' else 'U' if x == u'Услуги на коротких номерах (USSD)' \
else '1' if x == u'Исходящая связь' else '1' if x == u'Исходящие международные вызовы'\
else x for x in type_of_service]
if len(data) == len(cost):
for i in (i for i,x in enumerate(cost) if x != '0.00'):
print data[i], time_val[i], ab_namber[i], time_cost[i], type_of_service[i], cost[i]
print u'Всего значений-', len(cost), u'из них без стоимости-', \
cost.count('0.00'), u'интересующух строк-', len(cost)-cost.count('0.00')
else:
print 'error'
for i in (i for i,x in enumerate(ab_name)):
print ab_name[i]
finish = time.time()
print (finish - start)
в результате получаем 555 строк вида
01.04.13 20:00:49 0 0 U 30.00
03.04.13 11:35:37 9147563100 0 M 6.00
05.04.13 07:38:55 INTERNET 100 G 0.34
05.04.13 20:47:14 9658011033 0 M 6.00
Все бы хорошо, но надо разделить это все по именам абонентов.
То что обзывается ab_name.
Дайте толчок мысли.
"Люди забыли эту истину, - сказал Лис, - но ты не забывай: ты навсегда в ответе за всех, кого приручил..."
Антуан де Сент-Экзюпери. Маленький принц