【问题标题】:Using Gecko/Firefox or Webkit got HTML parsing in python使用 Gecko/Firefox 或 Webkit 在 python 中进行 HTML 解析
【发布时间】:2010-10-21 05:47:32
【问题描述】:

我正在使用 BeautifulSoup 和 urllib2 下载 HTML 页面并对其进行解析。问题在于格式错误的 HTML 页面。虽然 BeautifulSoup 擅长处理格式错误的 HTML,但它仍然不如 Firefox。

考虑到 Firefox 或 Webkit 在处理 HTML 时更新和弹性更高,我认为使用它们来构建和规范化页面的 DOM 树,然后通过 Python 操作它是理想的。

但是我找不到任何相同的 python 绑定。任何人都可以建议一种方法吗?

我遇到了一些运行无头 Firefox 进程并通过 python 操作它的解决方案,但是否有更 Pythonic 的解决方案可用。

【问题讨论】:

  • 可能是因为您正在使用漂亮的汤 3.1,“在现实世界的 HTML 上比 3.0.7a 版本更糟糕”?[1] 最近我不得不自己解析一些东西,发现 3.0 .7 确实处理得更好。使用 easy_install 切换到 3.0.7a:sudo easy_install beautifulsoup==3.0.7a [1] crummy.com/software/BeautifulSoup/3.1-problems.html

标签: python html parsing


【解决方案1】:

也许pywebkitgtk 可以满足您的需求。

【讨论】:

  • 不,不会的。 pywebkitgtk “仅仅是一个页面显示器”。你想要gnu.org/software/pythonwebkit 这是一个经过大量修改的版本,它包含了 webkit (!) 并允许访问 DOM。所有 3,000 个函数和所有 20,000 个属性。
【解决方案2】:

http://wiki.python.org/moin/WebBrowserProgramming

有很多选择 - 我正在维护上面的页面,这样我就不会重复自己了。

你应该看看 pyjamas-desktop: 查看示例/uitest 示例,因为我们正是使用这个技巧来“输出” HTML 页面的副本,以便可以通过比较页面来测试 python-to-javascript 编译器每次单元测试后的结果。

pyjamas-desktop 支持和使用的每个运行时都能够允许访问文档正文元素的“innerHTML”属性(还有更多)。

底线:做你想做的事是微不足道的,但你必须知道去哪里才能找到如何去做。

l.

【讨论】:

    【解决方案3】:

    您可能会喜欢来自http://www.gnu.org/software/pythonwebkit/ 的 PyWebkitDFB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-06
      • 2011-12-17
      • 2010-11-02
      • 2012-04-22
      • 1970-01-01
      • 2012-04-13
      • 2011-02-08
      • 2016-01-16
      相关资源
      最近更新 更多