Найти - Пользователи
Полная версия: Вопрос по регулярке.
Начало » Python для новичков » Вопрос по регулярке.
1
Dartanyan
Чуствую себя идиотом, выдает пустой список.
<div class="b-result__task"><div class="g-line"><div class="b-static-text">
                                  Сколько рублей сдачи она должна получить с 200 рублей?
                               </div></div></div>
Сам код с регуляркой
print re.findall(r'class="b-static-text">\n(.*?)</div>', render_html(answer[i]))
код в котором ищет.
<div class="b-result g-js b-result_js_inited" onclick="return {name:'b-result'}"><div class="b-result__task"><div class="g-line"><div class="b-static-text">
                                  Сколько рублей сдачи она должна получить с 200 рублей?
                               </div></div></div><img class="b-ico b-ico_type_answer b-ico_state_skip" src="//yandex.st/lego/_/La6qi18Z8LwgnZdsAr1qy1GwCwo.gif" alt=""><div class="b-result__answer"><div class="b-result__label">Вы пропустили вопрос</div></div>

где я туплю, едрен батон (.

Update
Сработало так:
print re.findall(r'class="b-static-text">\n(.*?)\n.*?</div>', render_html(answer[i]))[0]
но не устраивает , вдруг будет несколько \n
pyuser
А если убрать переводы строки из регулярки и применить strip к результату?

ЗЫ. для парсинга html лучше применять специализированные инструменты, lxml+cssselect например.
from lxml import html
doc = html.fromstring("...")
for answer in doc.cssselect("div.b-static-text"):
    print(answer.text.strip())
Dartanyan
Как задать cssselect div несколько классов?
P.S.
К моему сожалению использовать lxml, чтоб красиво парсить не выйдет, так как там простыня, а во вторых местами отсутствуют строки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB