如何使用beautifulsoup提取HTML?

时间:2015-10-23 06:42:38

标签: python beautifulsoup

HTML源代码

html = """
<td>
 <a href="/urlM5CLw" target="_blank">
  <img alt="I" height="132" src="VZhAy" width="132"/>
 </a>
 <br/>
 <cite title="mac-os-x-lion-icon-pack.en.softonic.com">
  mac-os-x-lion-icon-pac...
 </cite>
 <br/>
 <b>
  Mac
 </b>
 OS X Lion Icon Pack's
 <br/>
 535 × 535 - 135k - png
</td>"""

我的python代码

soup = BeautifulSoup(html)
text = soup.find('td').renderContents()

通过这些代码,我可以得到像

这样的字符串
<a href="/urlM5CLw" target="_blank"><img alt="I" height="132" src="VZhAy" width="132"/></a><br/><cite title="mac-os-x-lion-icon-pack.en.softonic.com">mac-os-x-lion-icon-pac...</cite><br/><b>Mac</b> OS X Lion Icon Pack's<br/>535 × 535 - 135k - png

但我不想要<a>....</a>,我只需要:

<br/><cite title="mac-os-x-lion-icon-pack.en.softonic.com">mac-os-x-lion-icon-pac...</cite><br/><b>Mac</b> OS X Lion Icon Pack's<br/>535 × 535 - 135k - png

2 个答案:

答案 0 :(得分:2)

尝试删除<a>标记,然后获取您尝试的内容。

>>> soup.find('a').extract()
>>> text = soup.find('td').renderContents()
>>> text
'<br/><cite title="mac-os-x-lion-icon-pack.en.softonic.com">mac-os-x-lion-icon-pac...</cite><br/><b>Mac</b> OS X Lion Icon Pack's<br/>535 \xd7 535 - 135k - png'

答案 1 :(得分:0)

您可以使用Tag.decompose()方法移除a标记并完全销毁其内容,您可能需要decode()字节字符串并替换所有\n出现''

soup = BeautifulSoup(html, 'lxml')
soup.a.decompose()
print(soup.td.renderContents().decode().replace('\n', ''))

的产率:

<br/><cite title="mac-os-x-lion-icon-pack.en.softonic.com">  mac-os-x-lion-icon-pac... </cite><br/><b>  Mac </b> OS X Lion Icon Pack's <br/> 535 × 535 - 135k - png