Beautifulsoup Parsing- подробная информация - PullRequest
1 голос
/ 30 августа 2011

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

<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

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

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

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

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

>>> 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 голосов
/ 30 августа 2011

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

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