我已经问了一个问题,但似乎我的探索并不清楚...... 所以,我再次询问更详细的信息。
<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
我已经度过了几天,所以我觉得我可能会变得疯狂.. 请帮帮我..谢谢你的帮助。
答案 0 :(得分:0)
您应该使用tag.contents
与.split('\n') to split on lines and
。rsplit('',1)`的组合来仅拆分最右边的空格分隔字符串。
答案 1 :(得分:0)
你仍然需要更多细节来编写一个好的正则表达式。
例如,如果要提取第二行“CORPORATE HEADQUARTERS”而没有始终存在的邮政编码,可以这样写:
>>> 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'