Beautifulsoup Parsing- подробная информация

1

Я уже задал вопрос, но, похоже, мое объяснение было непонятным. Итак, я снова спрашиваю с подробной информацией.

<h2 class="sectionTitle">
CORPORATE HEADQUARTERS  </h2>
277 Park Avenue<br />
New York, New York 10172
<br /><br />United States<br /><br />

Я бы хотел получить только Нью-Йорк, Нью-Йорк без почтового индекса 10172

И это еще один вопрос.

<h2 class="sectionTitle">
BACKGROUND</h2>
He graduated Blabala 
</span>

Я бы хотел получить только Окончил Blabla

Я проводил несколько дней, поэтому я чувствую, что могу стать сумасшедшим.. Пожалуйста, помогите мне.. Спасибо за вашу любезную помощь заранее.

Теги:
beautifulsoup

2 ответа

0
Лучший ответ

Вам все еще нужно больше деталей, чтобы написать хорошее регулярное выражение.

Например, если вы хотите извлечь вторую строку "КОРПОРАТИВНЫЕ ШТАБ-КВАРТИРЫ" без почтового кода, который всегда существует, ее можно записать следующим образом:

>>> import re
>>> html = '''
... <h2 class="sectionTitle">
... CORPORATE HEADQUARTERS  </h2>
... 277 Park Avenue<br />
... New York, New York 10172
... <br /><br />United States<br /><br />
... 
... <h2 class="sectionTitle">
... BACKGROUND</h2>
... He graduated Blabala
... </span>
... '''
>>> re.search('(?s)<h2 class="sectionTitle">\s*CORPORATE HEADQUARTERS\s*</h2>.*?<br />([^<>]+) \d+', html).group(1).strip()
'New York, New York'
>>> re.search('(?s)<h2 class="sectionTitle">\s*BACKGROUND\s*</h2>([^<>]+)', html).group(1).strip()
'He graduated Blabala'
  • 0
    Использование регулярных выражений для разбора HTML? Звучит как отличная идея!
  • 0
    Regex намного быстрее и толерантнее. Но вы должны быть очень, очень осторожны. Это подходит только для конкретного сайта.
Показать ещё 5 комментариев
0

Вы должны использовать комбинацию tag.contents с .split('\n') to split on lines and.rsplit('', 1) ', чтобы разделить только правую часть, разделенную пробелами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню