我想做以下几点.登录网站,单击几个特定链接,然后单击下载链接.我想将它作为Windows上的计划任务或Linux上的cron作业运行.我对我使用的语言并不挑剔,但我希望如果可能的话,不要在屏幕上放置浏览器窗口.
以下是我所知道的无头浏览器列表:
HtmlUnit - Java.定制浏览器引擎.有限的JavaScript支持/ DOM模拟.开源.
Ghost - 仅限Python.基于WebKit的.完整的JavaScript支持.开源.
斜纹 - Python /命令行.定制浏览器引擎.没有JavaScript.开源.
PhantomJS - 命令行/所有平台.基于WebKit的.完整的JavaScript支持.开源.
Awesomium - C++ /.NET /所有平台.铬为主.完整的JavaScript支持.商业/免费.
SimpleBrowser - .NET 4/C#.定制浏览器引擎.没有JavaScript支持.开源.
ZombieJS - Node.js. 定制浏览器引擎.JavaScript支持/模拟DOM.开源.基于jsdom.
EnvJS - 来自Java/Rhino的JavaScript.定制浏览器引擎.JavaScript支持/模拟DOM.开源.
Watir-webdriver与无头宝石 - Ruby通过WebDriver.通过浏览器(Firefox/Chrome/Safari/IE)提供完整的JS支持.
Spynner - 仅限Python.PyQT和WebKit.
jsdom - Node.js. 定制浏览器引擎.通过模拟DOM支持JS.开源.
TrifleJS - 使用MSIE(Trident)和V8的PhantomJS端口.开源.
ui4j - 纯Java 8解决方案.围绕JavaFx WebKit Engine的包装库.无头模式.
Chromium Embedded Framework - 完整的Chromium嵌入式版本,可根据需要进行屏幕外渲染.C/C++,包含.NET包装器(和其他语言).因为它是Chromium,它支持一切.BSD许可.
Selenium WebDriver - 通过浏览器(Firefox,IE,Chrome,Safari,Opera)完全支持JavaScript.官方支持的绑定是C#,Java,JavaScript,Haskell,Perl,Ruby,PHP,Python,Objective-C和R.非官方绑定可用于Qt和Go.开源.
通过模拟DOM提供JavaScript支持的无头浏览器通常会遇到一些使用更高级/模糊浏览器功能的网站的问题,或者具有视觉依赖性的功能(例如通过CSS位置等),因此在这些浏览器中支持纯JavaScript浏览器通常是完整的,实际支持的浏览器功能应该被视为仅部分.
(注意:这篇文章的原始版本只提到了HtmlUnit,因此注释.如果您知道其他无头浏览器实现并具有编辑权限,请随时编辑此帖并添加它们.)
查看twill,这是一种非常方便的脚本语言,可以满足您的需求.从示例:
setlocal usernamesetlocal password go http://www.slashdot.org/ formvalue 1 unickname $username formvalue 1 upasswd $password submit code 200 # make sure form submission is correct!
如果您正在寻找更多灵活性,还有一个Python API.