14

我想截取一个使用 JavaScript 的网站。

mechanize,Python 的程序化网络浏览器。但是,它(可以理解)不解释 javascript。是否有任何适用于 Python 的编程浏览器?如果没有,我可以使用 Python 中的任何 JavaScript 实现来尝试创建一个吗?

4

7 回答 7

11

您最好使用像Selenium这样的工具来使用 Web 浏览器自动进行抓取,这样 JS 就会像真实用户一样执行并且页面呈现。

于 2009-12-16T18:42:13.203 回答
8

PyV8包很好地包装Google 的用于 Python的 V8 Javascript 引擎。这特别好,因为您不仅可以从 Python 调用到 Javascript 代码,而且可以从 Javascript 回调到 Python 代码。这使得实现通常的浏览器提供的对象(即 Javascript 全局命名空间中的所有对象:“window”、“document”等)变得非常简单,如果您要制作这些对象,则需要这样做一个支持 Javascript 的 Python 浏览器模拟器,可能通过将它与mechanize连接起来。

于 2009-12-16T20:43:00.537 回答
5

我最喜欢的是PyPhantomJS。它是使用 Python 和 PyQt4 编写的。它是完全无头的,您可以完全通过 JavaScript 控制它。

但是,如果您希望实际查看该页面,您也可以使用QWebViewPyQt4。

于 2011-07-06T21:19:08.613 回答
4

还有 spynner“基于 QtWebkit 框架的具有 Javascript/AJAX 支持的 Python 有状态的编程 Web 浏览器模块”:http ://code.google.com/p/spynner/

于 2011-03-28T13:01:10.880 回答
2

您还可以尝试在相关页面上定义Chickenfoot页面触发器,在页面上执行您想要的任何操作并将操作结果保存到本地文件,并从程序内的命令行调用Firefox,然后读取文件.

于 2009-12-16T18:45:51.740 回答
1

我建议您在http://wiki.python.org/moin/WebBrowserProgramming查看一些可用的选项- 令人惊讶的是,这是一个常见问题(我今天在 stackoverflow 上找到了三个,由在谷歌上搜索“python浏览器”这个词)。如果你这样做,你会发现我给出的其他答案。

于 2010-06-09T20:24:09.787 回答
1

你可以试试zope浏览器

http://pypi.python.org/pypi?:action=display&name=zope.testbrowser

于 2010-10-03T13:10:58.813 回答