Requests库详解、详细使用、高级用法

Requests是一个优雅而简单的 Python HTTP 库

1.Requests库快速入门

1.1 Requests库安装

pip install requests

1.2 发送请求

        现在,让我们尝试获取一个网页,比如百度。

import  requests

url = 'https://www.baidu.com/'

response = requests.get(url=url)

print(response)

//'<Response [200]>'

        Requests库不仅仅能够发送get请求,post、put、delete、head、options等请求都能发送,仅仅需将get替换成相应的请求方式。

1.3 携参发送

        为了模拟正常的http请求,请求头、请求参数、请求体都是需要具体网页具体分析的。

接下来模拟百度的get请求。

import  requests

url = 'https://www.baidu.com/'

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}

response = requests.get(url=url,headers = headers)

print(response.text)

        response.text可以输出响应数据,可能是html页面也可能是字符串又或者是json数据。

        只有正确的模拟了请求头中的UA参数,get访问百度才会正确的返回完整的html页面。

        除去headers以外,requests请求还有许多可选参数params、data、json、cookies、files等。

2.requests库高级用法

2.1 会话对象

        Session 对象允许在请求之间保留某些参数,它还会在 Session 实例发出的所有请求中保留 cookie,并将使用urllib3连接池。

        Session 对象具有主 Requests API 的所有方法。

s = requests.Session()

s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get('https://httpbin.org/cookies')

print(r.text)
//'{"cookies": {"sessioncookie": "123456789"}}'

        Session对象可以在发送请求之前设置默认数据。例如:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# 'x-test'和'x-test2'都将携带发送,以下称为方法级参数,以上称为会话级参数
s.get('https://httpbin.org/headers', headers={'x-test2': 'true'})

        但请注意,即使使用会话,方法级参数也不会在请求之间保留。方法级参数可以覆盖会话级参数,只要设置了会话级参数,发送方法级参数时,会话级参数也会一并发送。方法级参数只会在请求发送方法时生效,不会携带至下一次请求中,但会话级参数会在以后的请求中继续生效。例如:

s = requests.Session()
s.cookies.update({
    'user':'eriiat'
})

r = s.get('https://httpbin.org/cookies', cookies={'from-my': 'browser'})
print(r.text)
'''
{
  "cookies": {
    "from-my": "browser", 
    "user": "eriiat"
  }
}'''

r = s.get('https://httpbin.org/cookies')
print(r.text)
'''
{
  "cookies": {
    "user": "eriiat"
  }
}'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值