全部博文(47)
分类: LINUX
2009-03-27 15:16:22
功能强大的curl
1) 通过curl直接访问sina网站
curl
2) 你也可以把sina保存期来
curl > sina 或 curl -o sina
3) 同时可以通过代理来访问网页
curl -x 10.54.38.18:8080 -o sina.html
4) 可以把cookies存放到一个文件里
curl -x 10.54.38.18:8080 -o sina.html -D cookie002.txt
5) 下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,很多网站都是靠监视你的cookie信息,
来判断你是不是不按规矩访问他们的网站的。
这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b
curl -x 10.54.38.18:8080 -o page1.html -D cookie0002.txt -b cookie0001.txt
6)有些讨厌的网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本~~~~
哪里有时间为了它去找这些怪异的浏览器呢!?
好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 10.54.38.18:8080 -o sina.html -D cookie0001.txt
7)
另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的referer地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不 是首页的地址,就可以断定那是个盗连了~~~~~
讨厌讨厌~~~我就是要盗连~~~~~!!
幸好curl给我们提供了设定referer的option: -e
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 10.54.38.18:8080 -e "" -o page.html -D cookie0001.txt
8)ftp 下载
curl -u name:passwd
或者大家熟悉的
curl
10)说完下载说上传
上传的option是 -T
比如我们向ftp传一个文件: curl -T localfile -u name:passwd
当然,向http服务器上传文件也可以
比如 curl -T localfile
注意,这时候,使用的协议是HTTP的PUT method
刚才说到PUT,嘿嘿,自然让老服想起来了其他几种methos还没讲呢!
GET和POST都不能忘哦。
http提交一个表单,比较常用的是POST模式和GET模式
GET模式什么option都不用,只需要把变量写在url里面就可以了
比如:
curl
而POST模式的option则是 -d
比如,curl -d "user=nickwolfe&password=12345"
就相当于向这个站点发出一次登陆申请~~~~~
到底该用GET模式还是POST模式,要看对面服务器的程序设定。
一点需要注意的是,POST模式下的文件上的文件上传,比如
这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
curl -F -F nick=go