2016-08-02 78 views
0

我想知道是否有一個庫或Python中的某些方法從HTML文檔中提取元素。例如:在Python中刪除HTML塊

我有這個文件:

<html> 
 
     <head> 
 
      ... 
 
     </head> 
 
     <body> 
 
      <div> 
 
      ... 
 
      </div> 
 
     </body> 
 
</html>

我想從文件塊內容一起刪除<div></div>標籤塊,然後它會是這樣的:

<html> 
 
    <head> 
 
    ... 
 
    </head> 
 
    <body> 
 
    </body> 
 
</html>

+0

你想只刪除''

標籤或這兩個標籤和內容的內容? –

+0

我想刪除它們之間的標籤和內容。但是隻有內容是好的:) – JefersonM

+0

你可以嘗試讀取html文件作爲xml並刪除'div'節點。 https://wiki.python.org/moin/PythonXml建議使用* ElementTree * –

回答

0

你並不需要爲這個圖書館。只需使用內置的字符串方法。

def removeOneTag(text, tag): 
    return text[:text.find("<"+tag+">")] + text[text.find("</"+tag+">") + len(tag)+3:] 

這將刪除第一次打開和關閉標記之間的所有內容。所以你在輸入例會是這樣的......

x = """<html> 
    <head> 
     ... 
    </head> 
    <body> 
     <div> 
     ... 
     </div> 
    </body> 
</html>""" 
print(removeOneTag(x, "div")) 

然後,如果你想刪除所有的標籤......

while(tag in x): 
    x = removeOneTag(x, tag) 
+0

很酷。我真的不需要一個庫。謝謝! – JefersonM

+0

歡迎您!很高興我能夠幫助! – Wso

0

嘗試使用HTML解析器(如BeautifulSoup)選擇<div> DOM元素。然後你可以使用正則表達式或類似的方法刪除它。