我有一个我正在解析的文档,里面有div
个标签的列表,但它有时也只是文本内联。我需要知道如何从中提取内容。
说我有以下内容:
<div>
<div>1</div>
<div>2</div>
3
<div>4</div>
</div>
我需要提取上面的所有文字,所以它读取1234。
我有以下代码获取所有div
代码,但不会自行获取文字。
from ghost import Ghost
from BeautifulSoup import BeautifulSoup
def tagfilter(tag):
return tag.name == 'div'
ghost = Ghost()
ghost.open("testpage.html")
page, resources = ghost.wait_for_page_loaded()
soup = BeautifulSoup(ghost.content)
maindiv = soup.find('div', {'id': 'parentdiv'})
outtext = ''
for s in maindiv.findAll(ipfilter):
outtext + = s.text
print outtext
答案 0 :(得分:1)
如果您需要空格,请使用stripped_strings
(或strings
:
In [16]: soup = BeautifulSoup('''<div>
<div>1</div>
<div>2</div>
3
<div>4</div>
</div>''')
In [19]: list(soup.stripped_strings)
Out[19]: [u'1', u'2', u'3', u'4']
In [20]: ''.join(soup.stripped_strings)
Out[20]: u'1234'
http://www.crummy.com/software/BeautifulSoup/bs4/doc/#strings-and-stripped-strings