抓取网页
1 | curl https://www.baidu.com |
如果发现结果中出现乱码,可以使用iconv
转码
1 | curl http://iframe.ip138.com/ic.asp|iconv -fgb2312 |
iconv
的用法此处就不详细说明
使用代理
curl
使用http代理抓取页面
1 | curl -x 111.95.243.36:80 http://iframe.ip138.com/ic.asp|iconv -fgb2312 |
使用socks代理抓取页面
1 | curl --socks4 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 | curl -b "key1=val1;key2=val2;" http://www.baidu.com #发送cookies文本 |
发送数据
Get方法提交数据
1 | curl -G -d "name=value&name2=value2" http://www.baidu.com |
Post方法提交数据
1 | curl -d "name=value&name2=value2" http://www.baidu.com #post数据 |
发送上传文件
1 | curl -F file=@/tmp/me.txt http://www.baidu.com |
HttpHeader的处理
设置HTTP请求头信息
1 | curl -A "Mozilla/5.0 Firefox/21.0" http://www.baidu.com #设置http请求头User-Agent |
设置HTTP响应头信息
1 | curl -I http://www.baidu.com #仅仅返回header |
认证
1 | curl -u username:password http://www.baidu.com #用户名密码认证 |
其他
1 | curl -# http://www.baidu.com #以"#"号输出进度条 |
注意事项
HTTP请求地址的URL最好使用双引号 "
括起来,当有多个参数使用 &
连接时可能会出错