[英]How do I remove a spurious tag in BeautifulSoup
我要從總統辯論中抽出文字。 我得到了一個有一個問題:它錯誤地變成了單詞“辯論”中提到每到一個標簽<debate>
。 繼續搜索“歡迎回到共和黨總統府”; 注意到一個明顯的詞不見了嗎?
太酷了,因此BeautifulSoup在清理雜亂的HTML並添加原本應該的結束標記方面做得非常出色。 但是在這種情況下,這使我感到困惑,因為<debate>
現在是<p>
的子級,並且結尾處</debate>
最終被添加了。 因此,將剩下的辯論嵌套在該標簽內。
如何告訴BeautifulSoup忽略或刪除<debate>
? 或者,如何在之后立即添加結束標記? 我已經嘗試過打開包裝,但是等到我可以稱呼它的時候,BS已經在結尾處設置了結束標簽,因此將以下段落設置為子級而不是同級。
這是我的設置方法:
from bs4 import BeautifulSoup
import urllib
bad_debate = 'http://www.presidency.ucsb.edu/ws/index.php?pid=111395'
file = urllib.urlopen(bad_debate)
soup = BeautifulSoup(file)
我的直覺是我需要在url調用和BeautifulSoup之間插入一些內容,但是對於我一生來說,我不知道如何修改文件內容。
在這種情況下, html5lib
解析器在處理debate
元素方面做得更好(比lxml
或html.parser
):
soup = BeautifulSoup(file, "html5lib")
它是如何處理辯論中提到的部分的:
<p>
<b>
BARTIROMO:
</b>
Welcome back to the Republican presidential
<debate>
here in North Charleston. Right back to the questions. [
<i>
applause
</i>
]
</debate>
</p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.