一个快速的Python HTML解析器
我写了一个python脚本来处理大量下载的网页HTML(120K页)。我需要解析它们并从中提取一些信息。我尝试使用BeautifulSoup,它很简单直观,但它似乎运行得非常慢。因为这是必须在弱机器上运行(在亚马逊上)的速度,这一点非常重要。 python中是否有一个HTML/XML解析器,其工作速度比BeautifulSoup快得多?或者我必须求助于正则表达式解析..一个快速的Python HTML解析器
尝试:ElementTree可能会更快,但我不知道。
xml.etree.ElementTree import ElementTree
我也会提出这个建议......虽然我没有任何数据可以支持与BeautifulSoup – inspectorG4dget 2012-03-12 16:44:25
SAX风格的解析器可以比基于DOM的更快。你的代码被赋予了一系列元素,你必须推断(并可能存储)他们的关系;但你只需要保持尽可能多的状态以获得你想要的数据。相比之下,DOM风格的解析器需要构建可导航的对象模型,这需要耗费时间(和内存),这可能不需要花费。
Python有这样的HTML解析器;它被称为HTMLParser
(在Python 3中为html.parser
)。根据识别要提取的数据的难度,然而,要成功解决这种解析问题可能非常困难。如果你要发布一个示例文件并且告知你想从中提取哪些数据,我可能会采取一些措施。
[Keep the pony away ...](http://stackoverflow.com/a/1732454/554546) – 2012-03-12 16:28:50
我没有在Python中解析HTML的经验,但[这里](http://blog.ianbicking .org/2008/03/30/python-html-parser-performance /)是您可能会发现有用的一些基准测试结果。 – 2012-03-12 16:30:28
[正则表达式和HTML ==失败](http://stackoverflow.com/a/1732454/554546) – 2012-03-12 16:30:33