2

我正在尝试使用 python 和 beautiuflsoup 进行屏幕抓取。我遇到一个问题是我之前不知道如何获取文本值<br/>

这是一个例子:

<h3>
    Francois  Abboud
</h3>
Professor,&nbsp;
Internal Medicine
<br />
<br />
4

2 回答 2

1

我认为您可以使用.next_sibling

>>> from bs4 import BeautifulSoup
>>> 
>>> html = """
... <h3>
...     Francois  Abboud
... </h3>
... Professor,&nbsp;
... Internal Medicine
... <br />
... <br />
... """
>>> 
>>> soup = BeautifulSoup(html)
>>> 
>>> for h3 in soup.findAll("h3"):
...     print 'h3:'
...     print repr(h3)
...     print 'next sibling:'
...     print repr(h3.next_sibling)
... 
h3:
<h3>
    Francois  Abboud
</h3>
next sibling:
u'\nProfessor,\xa0\nInternal Medicine\n'

我应该说两分钟前我不知道该怎么做,但我知道findAll. 所以我得到了其中一个h3对象,我使用 IPython 的选项卡补全来查看里面有什么,它有类似的东西h3.next_elementh3.next_sibling我尝试了它们直到一个工作。

于 2012-09-19T14:53:29.333 回答
0

tsup,如果您将该 html 分配给一个字符串值,如下所示:

html = 'your html here'

然后你可以对其进行拆分,字符串将被拆分为一个字符串值数组,其中包含您指定的分隔符两侧的字符串:

def extractmyCrap(html):
   h3splitStrings = html.split('</h3>')
   h3splitStrings = h3splitStrings[1]
   extractedText = h3splitStrings.split('<br/>')
   return extractedText[0]

如果您需要任何进一步的帮助,或者我对您的问题的理解不正确,请发表评论

于 2012-09-19T14:51:50.413 回答