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