我正在使用 BeautifulSoup 进行一些屏幕抓取。我的问题是:我需要从段落中提取特定内容。一个例子:
<p><b><a href="/name/abe">ABE</a></b> <font class="masc">m</font> <font class="info"><a href="/nmc/eng.php" class="usg">English</a>, <a href="/nmc/jew.php" class="usg">Hebrew</a></font><br />Short form of <a href="/name/abraham" class="nl">ABRAHAM</a>
在这一段中,我可以提取名称 ABE,如下所示:
for pFound in soup.findAll('p'):
print pFound
#will get the names
x = pFound.find('a').renderContents()
print x
现在我的问题是在同一段中也提取另一个名称。
Short form of <a href="/name/abraham" class="nl">ABRAHAM</a>
仅当标记 a 前面有文本“Short form of”时,我才需要提取它
关于如何做到这一点的任何想法?HTML 页面中有很多这样的段落,并不是所有的段落都有“Short form of”文本,它们可能在那个地方包含一些其他文本。
我认为正则表达式和 findNext() 的某种组合可能有用,但我不熟悉 BeautifulSoup。结果浪费了很多时间。
任何帮助,将不胜感激。谢谢。