今天阅读Maven文档,其中提到curl,上网了解了一下,发现是一个很有用的开源项目:
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道(proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
举一个最简单的例子,抓取百度首页内容的方法是:
curl http://www.baidu.com
容易吧?
对于HTTP来说,通过这个工具,很容易实现在程序中抓取网页进行分析(结合正则表达式),也可以通过命令行向网站自动提交表单(灌水?)。
对于FTP来说,你很容易利用这个工具在你的程序中集成文件上传下载功能。
curl是开源的,除了编译成exe以外,也可以编译成lib,你想怎么用就怎么用。
curl支持业界几乎所有的主流OS。