有强大的cURL,忘掉httpclient的吧!

转自:http://lovejuan1314.iteye.com/blog/290461

 

说明

cURL是一个利用URL语法在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。
cURL支持的通訊協定有FTP、FTPS、HTTP、HTTPS、TFTP、Telnet、DICT、FILE和LDAP。

 

参考资料

http://www.ibm.com/developerworks/cn/linux/l-scheme/part3/  用 curl 和 scsh 编写 web 脚本

http://www.ibm.com/developerworks/cn/linux/l-scheme/part1/index.html 用 scheme 语言进行 UNIX 系统编程

http://www.ibm.com/developerworks/cn/linux/l-scheme/part2/  Scheme 程序语言介绍之一

 

这段时间想做一个网页采集的程序,由于一网站采用了防采集的办法,我的httpclient总是在登录后无法获取到我想要过去的链接。在无数次的跟踪过后发现原来人家给返回的是javascript拼成的页面,而且其中包含了frameset,期间嵌套好多frame。由于httpclient的getResonseBody仅仅只能得到服务器端而不能将它进一步做解析和执行。期间到时尝试想进一步将返回的js代码模拟浏览器执行,但是,突然想起php的cURL 模块很是强大,它就可以直接拿回来。所以就想是否尝试cURL是否会很简单哪?

 

安装cURL

 

yum install curl curl-devle  

下载libcurl的java绑定
http://curl.haxx.se/libcurl/java/

配置和编译java-libcurl

gunzip curl-java-0.2.2.tar.gz
tar xvf curl-java-0.2.2.tar
cd curl-java-0.2.2
make

 注意,在linux下会生成相应的javacurl库文件以及一些需要用到的java类源文件。不过注意在编译的时候把MakeFile中的路径都配置到你安装的目录中哦。

windows下要编译成dll文件。在eclipse环境中要将dll文件放在WINDOWS/system32或者按照你的目录标准重写头文件,然后执行编译。否则会给出java.lang.UnsatisfiedLinkError的错误。

有关该错误,可见偶们强大的JEr的讨论,帖子在:
http://www.iteye.com/topic/58461?page=2

因为,在libcurl-java中的源文件中有

   try {
      // Loading up the shared JNI
      System.loadLibrary("javacurl");
    } catch (Exception e) {
      e.printStackTrace();
    }

 相关windows环境下已经编译好的包下载地址在:
http://www.gknw.de/mirror/curl/curl_java/

然后,执行curl-java-0.2.2包中的test.java文件(可以将里面的url,改成你想登入的顽固网站)

你是否看见你它贴心的给你返回你想要的东西了呢?

如果用ruby,python或者perl的话,也是只需安装他们的libcurl绑定模块即可,然后在你的世界畅游吧。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值