【发布时间】:2016-01-12 07:30:49
【问题描述】:
当我解析 html 时,我总是采用最直观的方法,即 preg_match 页面源。我知道有些解析器可以使用更经济的代码完成工作,例如 PHP Simple HTML DOM Parser ,但是当我只需要源代码中的少量值时,我不确定解析器是否比 preg_match 更快。
那么,是使用解析器更快还是只是为了让代码看起来更好?假设我们没有为 preg_match 使用低效的正则表达式。
【问题讨论】:
-
不要使用正则表达式来解析 HTML...阅读:stackoverflow.com/questions/1732348/…
-
解析器速度较慢,但更可靠。这并不是让代码看起来很漂亮。如果 HTML 文件最终违反了您在构建正则表达式时所进行的假设,那么它不会得到错误的结果。
-
使用正则表达式在性能方面非常昂贵。与性能相比,正确的解析器不仅更好,而且它们还倾向于使其更易于阅读和(隐式)维护。
-
我一般不推荐这个解析器。代码库很糟糕,解析器本身相当慢且内存不足。任何基于 libxml 的库都应该轻松胜过这一点。
-
您可以使用奇妙的Symfony DomCrawler + CssSelector 组件。如果您习惯使用 jQuery 选择器,那么您会对 CSS 组件感到宾至如归。