Python 网络爬虫之:requests 模块基础用法、理解;以及 request.get() 方式与使用Request()类发送请求的对比

1. requests 模块的作用

  • 向服务器端发送请求并接受服务器的响应
  • 最常用的方法是:requests.get(),其作用相当于 urllib 库中的 urlopen
  • requests 模块的表达比 urllib 更简洁,尤其表现在高级功能的实现上,例如:
    - 文件上传
    - 会话维持
    - Cookie 功能
    - SSL 证书验证
    - 设置代理

2. requests 简单方法和理解

2.1 requests.get() / requests.post() / requests. delete 等:获取服务器信息

用 requests.get() 请求到的信息有:

import requests

x = requests.get("http://www.baidu.com")
print(x,'\r\n')
print(x.headers,'\r\n')
print(x.url,'\r\n')
print(x.text,'\r\n')
print(x.json,'\r\n')

在这里插入图片描述

2.2 requests.get() 方法的局限性

requests.get() 方法可以传入的参数很少,只有以下三个:

  • url :必传参数,负责定位资源
  • params:选填,负责对资源进一步限定
  • headers:选填,指定请求行中的信息

与之相似的方法还有:

  • requests.post() 用post 方法来请求数据
  • requests.put() 用 put 方法来请求数据
  • requests.delete() 用 delete 方式来请求数据

这些方法都是并列的,当使用不同的方法(get、post、put、delete等)来向服务器发出请求,相当于每一种方法打开一个浏览器,即:如果我们使用如下代码,相当与打开了两个浏览器:

import requests

x = requests.get('http://www.baidu.com')
y = requests.post('http://www.baidu.com')

那么,使用什么方式来编写代码可以相当于开了一个浏览器的不同选项卡,而不是多个浏览器呢?

创建会话 Session 来实现。

2.3 requests.Session() 创建会话

import requests

s = requests.Session()
x = s.get('http://www.baidu.com')
y = s.post('http://www.baidu.com')

通过一个会话来 get 和 post 请求,就相当于在一个浏览器里面打开了两个标签页,非常方便而且快捷。

2.4 等效的数据请求方式

以下两端代码是等效的:

import requests

s = requests.Session()
x = s.get('http://www.baidu.com')
y = s.post('http://www.baidu.com')
print(x,y)

在这里插入图片描述

import requests

s = requests.Session()

req_get = requests.Request('GET','http://www.baidu.com')
req_post = requests.Request('POST','http://www.baidu.com')

prepared_get = s.prepare_request(req_get)
prepared_post = s.prepare_request(req_post)

data_get = s.send(prepared_get)
data_post = s.send(prepared_post)
print(data_get,data_post)

在这里插入图片描述
requests.Request() 就是一个专门用于请求的类,里面包含了 GET, POST, DELETE, PUT 等所有的请求方式,而且也可以在创建对象的时候规定:

  • url
  • headers
  • data

与 requests.get() 方式不同的是:如果用 Request 类来创建对象,然后将这个请求发送给服务器的话,还要使用 prepare_request() 函数 和 send 函数进行操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值