0%

Curl的使用

抓取网页

1
curl https://www.baidu.com

如果发现结果中出现乱码,可以使用iconv转码

1
curl http://iframe.ip138.com/ic.asp|iconv -fgb2312

iconv的用法此处就不详细说明

使用代理

curl使用http代理抓取页面

1
2
curl -x 111.95.243.36:80 http://iframe.ip138.com/ic.asp|iconv -fgb2312
curl -x 111.95.243.36:80 -U username:password http://www.baidu.com

使用socks代理抓取页面

1
2
curl --socks4 202.113.65.229:443 http://iframe.ip138.com/ic.asp|iconv -fgb2312
curl --socks5 202.113.65.229:443 http://iframe.ip138.com/ic.asp|iconv -fgb2312

代理服务器地址可以从爬虫代理上获取

对Cookie的处理

接受Cookie

1
curl -c /tmp/cookies http://www.baidu.com           #cookies保存到/tmp/cookies文件

发送Cookie

1
2
curl -b "key1=val1;key2=val2;" http://www.baidu.com #发送cookies文本
curl -b /tmp/cookies http://www.baidu.com #从文件中读取cookies

发送数据

Get方法提交数据

1
curl -G -d "name=value&name2=value2" http://www.baidu.com

Post方法提交数据

1
2
curl -d "name=value&name2=value2" http://www.baidu.com  #post数据
curl -d a=b&c=d&txt@/tmp/txt http://www.baidu.com #post文件

发送上传文件

1
curl -F file=@/tmp/me.txt http://www.baidu.com

HttpHeader的处理

设置HTTP请求头信息

1
2
3
curl -A "Mozilla/5.0 Firefox/21.0" http://www.baidu.com     #设置http请求头User-Agent
curl -e "http://pachong.org" http://www.baidu.com #设置http请求头Referer
curl -H "Connection:keep-alive \n User-Agent: Mozilla/5.0" http://www.baidu.com

设置HTTP响应头信息

1
2
curl -I http://www.baidu.com #仅仅返回header
curl -D /tmp/header http://www.baidu.com #将http header保存到/tmp/header文件

认证

1
2
curl -u username:password http://www.baidu.com  #用户名密码认证
curl -E mycert.pem https://www.baidu.com #采用证书认证

其他

1
2
curl -# http://www.baidu.com                    #以"#"号输出进度条
curl -o /tmp/baidu http://www.baidu.com #保存http响应到/tmp/baidu

注意事项

HTTP请求地址的URL最好使用双引号 " 括起来,当有多个参数使用 & 连接时可能会出错