我想截取一个使用 JavaScript 的网站。
有mechanize,Python 的程序化网络浏览器。但是,它(可以理解)不解释 javascript。是否有任何适用于 Python 的编程浏览器?如果没有,我可以使用 Python 中的任何 JavaScript 实现来尝试创建一个吗?
我想截取一个使用 JavaScript 的网站。
有mechanize,Python 的程序化网络浏览器。但是,它(可以理解)不解释 javascript。是否有任何适用于 Python 的编程浏览器?如果没有,我可以使用 Python 中的任何 JavaScript 实现来尝试创建一个吗?
您最好使用像Selenium这样的工具来使用 Web 浏览器自动进行抓取,这样 JS 就会像真实用户一样执行并且页面呈现。
PyV8包很好地包装了Google 的用于 Python的 V8 Javascript 引擎。这特别好,因为您不仅可以从 Python 调用到 Javascript 代码,而且可以从 Javascript 回调到 Python 代码。这使得实现通常的浏览器提供的对象(即 Javascript 全局命名空间中的所有对象:“window”、“document”等)变得非常简单,如果您要制作这些对象,则需要这样做一个支持 Javascript 的 Python 浏览器模拟器,可能通过将它与mechanize连接起来。
我最喜欢的是PyPhantomJS。它是使用 Python 和 PyQt4 编写的。它是完全无头的,您可以完全通过 JavaScript 控制它。
但是,如果您希望实际查看该页面,您也可以使用QWebView
PyQt4。
还有 spynner“基于 QtWebkit 框架的具有 Javascript/AJAX 支持的 Python 有状态的编程 Web 浏览器模块”:http ://code.google.com/p/spynner/
您还可以尝试在相关页面上定义Chickenfoot页面触发器,在页面上执行您想要的任何操作并将操作结果保存到本地文件,并从程序内的命令行调用Firefox,然后读取文件.
我建议您在http://wiki.python.org/moin/WebBrowserProgramming查看一些可用的选项- 令人惊讶的是,这是一个常见问题(我今天在 stackoverflow 上找到了三个,由在谷歌上搜索“python浏览器”这个词)。如果你这样做,你会发现我给出的其他答案。