Форум сайта python.su
0
Имеется регулярное выражение
reg = ‘'</td><td><b>(.+)</b>d’'
имеется кусочек страницы которую нужно парсить
<TABLE width='450' class=form>
<tr><td colspan='2'><input type='hidden' name='UID' value='79'/></td></tr>
<tr><td>Депозит:</td><td><b>3.250000</b> <a title='Оплаты' class='payments rightAlignText' href=“91.241.160.3:9443/admin/index.cgi?index=2&UID=79”>Оплаты</a> <a title='Снятие денег' class='fees rightAlignText' href=“92.341.160.3:9447/admin/index.cgi?index=3&UID=79”>Снятие денег</a></td></tr>
<tr><td>Денежный счёт:</td><td>81</td></tr>
пишем texxt = re.search('</td><td><b>(.+)</b>d',r.text)
r.text - это страница полученная с сайта , тут я привел только нужный кусок
Получаем всегда результат None , причем если берем утилиту для тестирования регулярных выражений например Kiki или вводим эти данные на сайте RegExr то регулярное выражение работает и проблем с ним нету но питон упорно не хочет находить нужный результат. Забыл сказать найти нужно числа разделенные точкой в данном примере это число 3.250000
Пробовал еще вот такое выражение reg = ‘Депозит:</td><td><b>(\d+\.\d+)</b>’ тоже ничего не находит , наверное я допустил ошибку или чего то не понимаю , помогите , укажите что я делаю не так ((
Отредактировано Jeck290 (Март 19, 2013 12:07:24)
Офлайн
88
А
reg = "</td><td><b>(.+)</b>"
<TABLE width='450' class=form> <tr><td colspan='2'><input type='hidden' name='UID' value='79'/></td></tr> <tr><td>Депозит:</td><td><b>3.250000</b> <a title='Оплаты' class='payments rightAlignText' href=“91.241.160.3:9443/admin/index.cgi?index=2&UID=79”>Оплаты</a> <a title='Снятие денег' class='fees rightAlignText' href=“92.341.160.3:9447/admin/index.cgi?index=3&UID=79”>Снятие денег</a></td></tr> <tr><td>Денежный счёт:</td><td>81</td></tr></b>
Офлайн
0
Нет нет , не работает (
Офлайн
857
Jeck290и для чего там d в конце ?
Имеется регулярное выражение
reg = ‘</td><td><b>(.+)</b>d’
>>> import re >>> >>> s = """ ... <TABLE width='450' class=form> ... <tr><td colspan='2'><input type='hidden' name='UID' value='79'/></td></tr> ... <tr><td>Депозит:</td><td><b>3.250000</b> <a title='Оплаты' class='payments rightAlignText' href=“91.241.160.3:9443/admin/index.cgi?index=2&UID=79”>Оплаты</a> <a title='Снятие денег' class='fees rightAlignText' href=“92.341.160.3:9447/admin/index.cgi?index=3&UID=79”>Снятие денег</a></td></tr> ... <tr><td>Денежный счёт:</td><td>81</td></tr> ... """ >>> >>> pat = r'</td><td><b>(.+)</b>' >>> #pat = 'Депозит:</td><td><b>(\d+\.\d+)</b>' ... >>> m = re.search(pat, s) >>> print(m and m.group(1)) 3.250000 >>>
pat = r'</td><td><b>(.+?)</b>'
>>> re.search(r'<(.+)>', '<b>abc</b>').group(1) 'b>abc</b' >>>
Отредактировано py.user.next (Апрель 4, 2013 09:25:47)
Офлайн
> помогите , укажите что я делаю не так ((
Используете регулярки вместо связки lxml + xpath запросы
Офлайн
0
lorien
Да если бы у меня был xml файл то да все понятно что я не так делаю а так у меня на входе html :)
py.user.next
Спасибо действительно все работает , буква d просто так залетела ))
Всем спасибо за внимание.
Офлайн
857
Jeck290не, дело в том, что может получиться такое:
Да если бы у меня был xml файл то да все понятно что я не так делаю а так у меня на входе html :)
<script>alert("</td><td><b>abc</b>")</script>
Офлайн