适用于 Python 的无头浏览器(需要 Javascript 支持!)

IT技术 javascript python screen-scraping headless-browser
2021-02-02 05:29:56

我需要一个相当容易使用的无头浏览器(我对 Python 和一般编程还是很陌生)它可以让我导航到一个页面,登录到一个需要 Javascript 的表单,然后通过搜索符合特定条件的结果,单击复选框,然后单击下载文件。所有这些都需要 Javascript。

我听说我想要一个无头浏览器 - 要求/偏好是我能够从 Python 运行它,并且最好是生成的脚本可以由 py2exe 编译(我正在为其他用户编写这个程序)。

到目前为止,风车看起来可能是我想要的,但我不确定。

任何想法表示赞赏!

6个回答

我通过 pyqt/pyside 使用 webkit 作为 Python 中的无头浏览器:
http : //www.riverbankcomputing.co.uk/software/pyqt/download
http://developer.qt.nokia.com/wiki/Category:LanguageBindings:: PySide::下载

我特别喜欢 webkit,因为它设置起来很简单。对于 Ubuntu,您只需使用:sudo apt-get install python-qt4

这是一个示例脚本:http :
//webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

这正是我为一个项目所做的工作,我正在使用 Django 来拥有一个 Web 界面以及一个跨平台的 qt 界面。这样我就可以以非常低的成本获得功能奇偶校验。
2021-03-24 05:29:56
还有PySide,它类似于 PyQt,除了在 LGPL 而不是 GPL 下。
2021-03-26 05:29:56
@synthesizerpatel:webkit 可以无头运行,您可以通过 frame.evaluateJavaScript() 注入 javascript
2021-03-26 05:29:56
任何未来的访问者都可能希望查看Ghost.py,它提供了一个很好的 PyQt/PySide 包装器。
2021-03-27 05:29:56
我认为无头意味着没有实际的浏览器页面,虽然你可以用 webkit 做到这一点 - 我发现它由 Python 驱动很有用。唯一的问题是与 Javascript 交互并不是世界上最简单的事情——如果我没记错的话,你不能只是注入东西。但是,我确实设法将 Python interpeter 嵌入到 Qt 应用程序中,该应用程序可以“驱动”webkit 界面,因此它肯定有一些好处。您可能还想查看sikuli.org以获取更多面向测试的解决方案。
2021-03-30 05:29:56

这个问题的答案是Spynner

我不确定这是否是目前最好的答案,但在 2011 年 Python 2 非常可行
2021-03-23 05:29:56
看起来 Spynner 不支持python3ATM
2021-03-25 05:29:56
Spynner 的依赖项 Libxslt 需要来自 VS 2008 的 vcvarsall.bat,这会造成相当大的考验:链接我们需要一个替代方案。
2021-04-01 05:29:56

我正在为 Zombie.js 编写 Python 驱动程序,“一个用于在模拟环境中测试客户端 JavaScript 代码的轻量级框架”。

我目前在解决 Node.js 中的错误方面处于停滞状态(在我编写更多测试和更多代码之前),但请随时关注我的项目进展情况:

https://github.com/ryanpetrello/python-zombie

你们还在维护吗?刚刚检查,构建失败。
2021-04-09 05:29:56

支持 Javascript 的无头浏览器还不是很多。

你可以试试Zombie.jsPhantomjs那些不是 Python,而是普通的 Javascript,那些真的可以完成这项工作。

2021-04-11 05:29:56

尝试使用 phantomjs,它有很好的 javascript 支持。然后你可以将它作为 python 脚本的子进程运行

http://docs.python.org/library/subprocess.html

这可以控制它。

我这样做是为了更换它,因为停止/启动该过程非常费力,这会极大地影响性能。然后,一旦您开始将 phantomjs 作为服务运行,您将遇到一系列问题,例如内存泄漏。
2021-03-21 05:29:56