@nekolov

Как красивее распарсить не совсем стандартный html?

Добрый день,

есть ряд страниц которые я удачно распарсил с помощью библиотеки beautifulsoup, но есть несколько полностью аналогичных страниц НО с местами где я не совсем уверен что выбрал максимально простое решение. Проблема в том что в зависимости от страницы интересующие меня значения могут содержатся в немного отличающихся тегах, также не совсем ясно как и за что я могу 'зацепится' если буду использовать beautifulsoup а не regex если данные содержатся в единичном закрывающем теге.

Интересующие меня данные с 1 страницы
<br/>Some text</br>
<br/>Some text</br>

Интересующие меня данные с 2 страницы(как видно закрывающие теги уже другие)
<br/>Some text</div>
<br/>Some text <a href=....

Вот какой вариант пока пробую использовать я для получения значений(уточню что я далеко не мастер в регулярных выражения) с обоих вариантов верстки:
tmp = re.findall('<br/>(.*)<br/>|<br/>(.*) <a|<br/>(.*)</div', str(html))
print(tmp)

Но как видно он возвращает много пустых элементов, если честно я даже не совсем понимаю почему:
[('some text', '', ''), ('some text', '', '')]
Как проще всего получить интересующие меня значения?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
@dodo512
tmp = re.findall('<br/>(.*?)(?:<br/>|<a |</div)', str(html))
print(tmp)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы