2016-08-02 61 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元素。然后你可以使用正则表达式或类似的方法删除它。