python curl headers解析_curl详解

curl:命令行下的网站访问和验证工具

常用参数如下:-c,–cookie-jar:将cookie写入到文件

-b,–cookie:从文件中读取cookie

-C,–continue-at:断点续传

-d,–data:http post方式传送数据

-D,–dump-header:把header信息写入到文件

-F,–from:模拟http表达提交数据

-s,–slient:减少输出信息

-o,–output:将信息输出到文件

-O,–remote-name:按照服务器上的文件名,存在本地

–l,–head:仅返回头部信息

-u,–user[user:pass]:设置http认证用户和密码

-T,–upload-file:上传文件

-e,–referer:指定引用地址

-x,–proxy:指定代理服务器地址和端口

-w,–write-out:输出指定格式内容

–retry:重试次数

–connect-timeout:指定尝试连接的最大时间/s

实例:

抓取页面到指定文件,如果有乱码可以使用iconv转码# curl -o baidu.html www.baidu.com

# curl -s -o baidu.html www.baidu.com |iconv -f utf-8 #减少输出信息

模拟浏览器头(user-agent)# curl -A “Mozilla/52.0 (compatible;MSIE 8.0; Windows NT 6.0)” www.baidu.com

处理重定向页面# curl –L http://172.16.1.10/301.php #默认curl是不处理重定向

模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆# curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同

# curl -b ./cookies.txt –o URL

获取HTTP响应头headers# curl -I http://www.baidu.com

# curl -D ./header.txt http://www.baidu.com #将headers保存到文件中

访问HTTP认证页面# curl -u user:pass URL

通过ftp上传和下载文件# curl -T filename ftp://user:pass@ip/docs #上传

# curl -O ftp://user:pass@ip/filename #下载

curl url查看url的源代码

curl -I url查看url的状态码

200Ok

301 302跳转

404 403 502 503

curl -X ip:port url -I通过代理访问url查看状态

curl -Iv url查看详细的访问过程

curl -u username:password url访问需要用户密码的网站

curl -o 名字 url将文件保存为命令行中指定的文件名的文件中

curl -O url使用URL中默认的文件名保存文件到本地

curl -A 'aaa' www.aaa.comcurl在请求一个网页的时候,可以指定user_agent

只显示header信息,而不显示网页返回给我们的内容

下载单个文件,默认将输出打印到标准输出中(STDOUT)中

通过-o/-O选项保存下载的文件到指定的文件中:

-o:将文件保存为命令行中指定的文件名的文件中

-O:使用URL中默认的文件名保存文件到本地

1 #将文件下载到本地并命名为mygettext.htmlcurl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

2 #将文件保存到本地并命名为gettext.htmlcurl -O http://www.gnu.org/software/gettext/manual/gettext.html

3#指定代理主机和端口curl -x proxysever.test.com:3128 http://google.com

同样可以使用转向字符">"对输出进行转向输出

同时获取多个文件

1 curl

-O URL1 -O URL2

若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。

通过-L选项进行重定向

默认情况下CURL不会发送HTTP Location headers(重定向).当一个被请求页面移动到另一个站点时,会发送一个HTTP Loaction header作为请求,然后将请求重定向到新的地址上。

保存与使用网站cookie信息

1 #将网站的cookies信息保存到sugarcookies文件中curl -D sugarcookies http://localhost/sugarcrm/index.php

2 #使用上次保存的cookie信息curl -b sugarcookies http://localhost/sugarcrm/index.php

传递请求数据

默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据

可以通过--data/-d 方式指定使用POST方式传递数据

1 # GET

curl -u username https://api.github.com/user?access_token=XXXXXXXXXX

# POST

curl -u username --data "param1=value1&param2=value" https://api.github.com

#也可以指定一个文件,将该文件中的内容当作数据传递给服务器端curl --data @filename https://github.api.com/authorizations

注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:curl -d "value%201" http://hostname.com

在新版本的CURL中,提供了新的选项--data-urlencode,通过该选项提供的参数会自动转义特殊字符。

curl --data-urlencode "value 1" http://hostname.com

除了使用GET和POST协议外,还可以通过-X选项指定其它协议,如:

curl -I -X DELETE https://api.github.cim

上传文件curl --form "fileupload=@filename.txt" http://hostname/resource

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值