php - 使用 PHP(XPath)、PHP/Python(Regex) 或 Python(XPath) 从 html 中提取信息

标签 php python html regex xpath

我有大约。我需要从中提取信息的 40k+ html 文档。我尝试使用 PHP+Tidy(因为大多数文件格式不正确)+DOMDocument+XPath 来这样做,但它非常慢......我被建议使用正则表达式,但 html 文件没有语义标记(表基于布局,到处都使用无意义的标签/类)而且我不知道我应该从哪里开始......

只是好奇,使用 regexp (PHP/Python) 是否比使用 Python 的 XPath 库更快? Python 的 Xpath 库通常比 PHP 的对应库更快吗?

最佳答案

如果需要速度,请查看 lxml . lxml 是 libxml2 的 pythonic 绑定(bind)和 libxslt C 库。使用 C 库比任何纯 php 或 python 版本都快得多。

有一些令人印象深刻的benchmarks来自伊恩比金:

In Conclusion

I knew lxml was fast before I started these benchmarks, but I didn’t expect it to be quite this fast.

解析结果:

Parsing Resutls http://1.2.3.9/bmi/blog.ianbicking.org/wp-content/uploads/images/parsing-results.png

关于php - 使用 PHP(XPath)、PHP/Python(Regex) 或 Python(XPath) 从 html 中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1553511/

相关文章:

php - 优化 mysql 数据库 - 任务列表耗尽了我的服务器

php - Drupal 电子邮件变量未出现

javascript - 在谷歌地图上绘制区域

python - 使用 Python、Flask 和 Celery 的并发异步进程

python - 获取数据框中的非对角线元素

php - MySQL 查询(28K 行)使服务器过载

python - 如何以 CSV 可接受的格式打印元组列表?

html - 如何设置垂直高度以防止 float 跨度溢出?

html - 将字体规范从 Adob​​e XD 复制到 html/css

jquery 最后一个兄弟再次来到第一个兄弟?