阳仔学爬虫(2) HTTP协议 Requests 的head、post、put方法

HTTP协议

HTTP, Hypertext Transfer Protocol,超文本传输协议。
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。
HTTP协议采用URL作为定位网络资源的标识。

URL格式 http://host [:port] [path]
host: 合法的Internet主机域名或IP地址。
port: 端口号,缺省端口默认为80。
path: 请求资源的路径。
例:

http://www.bit.edu.cn(指的是北京理工大学校园网首页)
http://220.188.111.188/duty(指的是在这样id主机上duty目录下的资源)

URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源。

HTTP协议对资源的操作

方法说明
GET请求获取URL位置的资源
HEAD请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST请求向URL位置的资源后附加新的数据
PUT请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE请求删除URL位置存储的资源

PATCH和PUT的区别

假设URL位置有一组数据 Userinfo,包括 Userid、 Username
等20个字段。
需求:用户修改了 Username,其他不变。
采用 PATCH,仅向URL提交 Usernamel的局部更新请求。
采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除。

PATCH的最主要好处: 节省网络带宽

HTTP协议与Requests库的六个功能是一 一对应的。

Requests库的 head()方法

>>>r=requests.head(‘http://httpbin.org/get’)
>>>r.headers
('content-length: 238","access-control-allow-origin Access
Control-allow-credentials': true, Content-type
application/json,Server: nginx, Connection: keep-alive,
Date: ' Sat, 18 Feb 2017 12: 07: 44 T')*返回值不准确,在此不进行修改了,
返回的是头部信息*
>>>r.text
''

Requests库的 post()方法

>>>payload={'key1': 'value1','key2': 'value2'}
>>>r=requests.post(http://httpbin.org/post,data-payload)
>>> print(r.text)
{   ...
	"from":{
	  "key2": "value2",
	  "key1": "value1"
	},
}
向 URL POST一个字典
自动编码为form(表单) *默认为表单* 
>>>r=requests.post(‘http://httpbin.org/post’,data=‘ABC’)
>>> print(r.text)
{   ...
	"data": "ABC"
	"form":{},
}
向 URL POSTー个字符串
自动编码为data

Requests库的 put()方法

>>> payload={'key1': 'value1', 'key2': 'value2'}
>>>r=requests.put('http://httpbin,org/put',data=payload)
>>> print(r.text)
{    ...
	"from":{
	  "key2": " value2",
	  "key1": "value1"
	},
}

本文资料来源:中国大学MOOC

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值