Requests 请求

HTTP协议中定义了八种访问类型来表明对Request-RUI指定资源的操作方式,其中常用的GET、POST方法,还有PUT、DELETE、HEAD、OPTIONS、CONNECT、TRACE,每一种访问类型介绍如下:
1、GET:请求指定的页面信息,并返回实体主体;
2、POST:请求服务器接受所指定的文档作为对所标志的URI的新的从属实体,用于更新数据时,只发送更新数据更新部分,而不是发送数据整体;
3、PUT:从客户端想服务器传送数据替换指定的文档内容,用于数据更新时,发送数据整体;
4、DELETE:请求服务器删除指定的页面
5、HEAD:只请求页面的首部
6、TRACE::请求服务器在响应中的实体主体部分返回所得到的内容
7、OPTIONS:允许客户端查看服务器的性能
8、CONNECT:HTTP/1.1 中预留给能够将连接改为管道方式的代理服务器。
我们常用的GET和POST,二者具体使用和区别:
GET适用于多数请求,而保留POST仅用于更新站点,根据HTTP规范,GET用户信息获取,是幂等和安全操作的。所谓安全操作是获取信息而不进行数据更新,幂等意味这对同一URL的多个请求应该返回同样的结果。POST请求可能会改变服务器上资源的请求,以此博客为例,如果通过POST请求上传了评论信息,那么再次请求就会获取信息的内容了。
在HTML的FORM表单中,如果不指定方法,默认是GET,请求的数据会附在url之后,以?和url分开,以&连接多个数据,字母和数字远洋发送,空格转换成'+'号,其他符号转为%XX,其中XX为符号以16进制表示的ACSII值。GET方法请求提交的数据设置放在HTTP的请求协议头中,所以安全敏感数据不能使用GET方法,而POST是放在实体数据中,所以GET请求是由长度限制,最多1024字节,而POST无限制。

在Requests中,对于GET 和 POST请求的使用有所不同,主要的地方在传入数据时,GET方法使用params,而POST方式使用data 或 files:
GET请求:r = requests.get(url, cookies=cookie, params = payload)POST 请求:
r = requests.post(url, cookies-cookie, data = payload)

 在POST请求中,有时会需要传输一个JSON字符串而非字段,此处提供了字典和JSON字符串之间的转换方法:
json.loads(json_str) json字符串转换成字典
json.dumps(dict) 字典转换成json字符串

响应内容:
1、响应的编码格式:
Requests会基于HTTP头部对响应的编码格式做出有根据的推断,可以使用r.encoding打印编码格式,或者时r.encoding='utf8'来设置编码格式

2、返回响应内容:

r.content: 返回二进制字节
r.json() 返回json字符串

r.raw: 返回原始数据,如果需要使用时,则在请求中添加stream=True

引用中提到了requests模块可以简化复杂的请求头设置。在使用requests发送网络请求时,可以通过设置headers参数来传递请求头信息。请求头是包含一些关键信息的HTTP头部字段,用于告诉服务器关于请求的一些重要信息,比如User-Agent、Accept-Language等。通过设置请求头,可以模拟浏览器的头部信息来进行访问,解决服务器拒绝访问的问题。其中给出了一个示例代码,可以通过创建一个字典来设置头部信息,然后将该字典作为headers参数传递给requests.get()方法来发送请求。例如: ```python import requests url = 'https://www.example.com/' # 替换为需要请求的网址 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0'} response = requests.get(url, headers=headers) print(response.status_code) ``` 在上述代码中,我们通过设置User-Agent字段来模拟Firefox浏览器发送请求头信息,并通过requests.get()方法发送了一个GET请求。最后,我们打印了响应状态码。这样就可以通过设置请求头来进行requests请求了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [爬虫实战学习笔记_6 网络请求request模块:基本请求方式+设置请求头+获取cookies+模拟登陆+会话请求+验证...](https://blog.csdn.net/qq_39237205/article/details/123805848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值