清理.html报告并导出为.txt文件

时间:2015-08-06 04:29:01

标签: python html beautifulsoup lxml lxml.html

我一整夜都在寻找,但我仍然不确定如何完成工作。我是python的新手,所以如果我问一些简单的问题,请先原谅我。

我有三千个.html文件(从一个受信任的网站下载的所有新产品说明)存储在一个文件夹中,现在我想逐个清理这些文件(即,只保留内容/产品描述和删除标签等)然后将每个内容存储为单个.txt文件。

在阅读了几篇Q& As后,我认为我需要使用lxml包而不是漂亮的汤,因为所有.html文件都来自高度可靠的来源。但是,我不知道lxml中我应该使用哪个命令/选项,请你告诉我吗?

1 个答案:

答案 0 :(得分:0)

lxml是一个不错的选择,不仅因为它是一个很好的来源,而且因为它的速度。只要考虑到受信任的来源并不意味着格式正确的标记,这在库之间很重要。

如果所有页面具有相同的结构,xpath将完成这项工作。首先,您需要获取Chrome可以为您执行的xpath,只需执行“检查元素”即可。 - >右键单击需要解析的html元素 - >选择'复制xpath'。

在您的python代码中请求页面。拿html并转换它:

from lxml import html
tree = html.fromstring("htmlString") #you can switch this with the path of the html file
name = tree.xpath('XPATH GOES HERE') 

在大多数情况下,这将返回一个列表对象。要仅从属性中获取文本,请添加' / text()'到xpath的末尾。 Chrome的xpath版本有时与python读取的内容不同(我有这个问题的表格),所以如果它没有返回任何内容,请稍微使用xpath以确保有效。

可替换地,

你可以"导航" html文件的结构,而不是使用带有

的xpath
.find_class('css_class_Name') .getnext() .getchildren()
例如

然后使用

.text_content() 

从html元素中提取文本。我鼓励您阅读这些docs,以确定您需要使用哪一个。