2015-10-23 97 views
1

HTML源代碼是如何使用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

嘗試刪除<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' 
0

可以使用Tag.decompose()方法來刪除a標籤,徹底摧毀他的內容也可能需要decode()您的字節串,並通過''替換所有\n occurence。

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 
相關問題