2016-06-23 51 views
0

我來過這件事,而我發現通過找到標籤和contets刪除內容和標籤,問題是如何把它刪除,這是我的例子:HOWTO:beautifulsoup4通過查找或find_all

html="""<a href="http://digi.tech.com/a/20160621/050783.htm" rel="nofollow" <table cellpadding="0" cellspacing="0" class="atd"><tbody><tr><td id="article_content"><p align="center" class="pageLink"> 
</p> 
</td></tr></tbody></table> 
<p style="text-align: center;"><img alt=" " data-bd-imgshare-binded="1" height="220" src="/skin/vr186/images/wxin.jpg" width="220"/></p> 
<p style="text-align: center;"><span style="color: rgb(102, 204, 204);"><strong>every day 5</strong></span></p> 
<div id="click_div"><div class="left_boxs_tit4"><div class="blank10"></div> 
<a name="pl"></a> 
<div class="blank20"></div><div class="feelings"><iframe frameborder="0" height="200" id="mood_frame" marginheight="0" marginwidth="0" scrolling="no" src="/e/extend/mood/?classid=2&amp;id=4559" width="538"></iframe></div></div></div>""" 

我現在可以使用以下獲得上述

a = beautifulsoup(html) 
fst = a.find(class_="atd") 
next_siblings = fst.find_next_siblings() 

內容和標籤,將會在下面的字符串:

<table cellpadding="0" cellspacing="0" class="atd"><tbody><tr><td id="article_content"><p align="center" class="pageLink"> 
</p> 
</td></tr></tbody></table> 
<p style="text-align: center;"><img alt=" " data-bd-imgshare-binded="1" height="220" src="/skin/vr186/images/wxin.jpg" width="220"/></p> 
<p style="text-align: center;"><span style="color: rgb(102, 204, 204);"><strong>every day 5</strong></span></p> 
<div id="click_div"><div class="left_boxs_tit4"><div class="blank10"></div> 
<a name="pl"></a> 
<div class="blank20"></div><div class="feelings"><iframe frameborder="0" height="200" id="mood_frame" marginheight="0" marginwidth="0" scrolling="no" src="/e/extend/mood/?classid=2&amp;id=4559" width="538"></iframe></div></div> 

但是,我無法通過del a ['tag_name']刪除它,因爲它是長篇文章的一小部分,如何通過它的id刪除標籤及其內容?

回答

0

你只需要選擇元素和提取它:

html="""<a href="http://digi.tech.com/a/20160621/050783.htm" rel="nofollow" <table cellpadding="0" cellspacing="0" class="atd"><tbody><tr><td id="article_content"><p align="center" class="pageLink"> 
</p> 
</td></tr></tbody></table> 
<p style="text-align: center;"><img alt=" " data-bd-imgshare-binded="1" height="220" src="/skin/vr186/images/wxin.jpg" width="220"/></p> 
<p style="text-align: center;"><span style="color: rgb(102, 204, 204);"><strong>every day 5</strong></span></p> 
<div id="click_div"><div class="left_boxs_tit4"><div class="blank10"></div> 
<a name="pl"></a> 
<div class="blank20"></div><div class="feelings"><iframe frameborder="0" height="200" id="mood_frame" marginheight="0" marginwidth="0" scrolling="no" src="/e/extend/mood/?classid=2&amp;id=4559" width="538"></iframe></div></div></div>""" 


soup = BeautifulSoup(html) 

fst = soup.find(class_="atd") 

fst.select_one("#click_div").extract() 
print(fst) 

,這將給你:

<a cellpadding="0" cellspacing="0" class="atd" href="http://digi.tech.com/a/20160621/050783.htm" rel="nofollow"><tbody><tr><td id="article_content"><p align="center" class="pageLink"> 
</p> 
</td></tr></tbody> 
<p style="text-align: center;"><img alt=" " data-bd-imgshare-binded="1" height="220" src="/skin/vr186/images/wxin.jpg" width="220"/></p> 
<p style="text-align: center;"><span style="color: rgb(102, 204, 204);"><strong>every day 5</strong></span></p> 
</a> 

您可以使用fst.find(id="click_div").extract(),如果你願意的話,結果將是相同的。