优草派  >   Python

python request参数?

陈婷婷            来源:优草派

Python中的requests库是实现了HTTP协议的基础库,它使HTTP请求变得容易且可以灵活地传递参数。本文将从多个角度分析Python中request参数的使用。

python request参数?

一、请求参数的基本用法

首先,我们看一下requests发送GET请求的基本用法:

import requests

r = requests.get('https://www.example.com', params={'key': 'value'})

print(r.url)

这里的params参数是请求参数,可以是一字典类型的参数,也可以是一个字符串。这两种写法效果都是一样的,以'key1=value1&key2=value2'的形式拼接在url的查询部分,发送给服务器,Server端就可以解析我们发过去的数据,进行相关处理,返回对应的数据。

如图所示:

二、请求参数的传参方式

params是requests的一种传参方式,除此之外,requests使用data、json、headers等几种传参方式。

1、data参数

data是一个字典类型的请求参数,如下所示:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.post('https://www.example.com', data=payload)

print(r.url)

这种情况下,发送的是以表单的形式进行编码的数据,对于表单来说,数据类型都是application/x-www-form-urlencoded。requests会把data参数自动序列化成表单类型,然后添加到请求头中。

2、json参数

json是一个序列化后的json字符串,可以直接传递给服务端。如果我们想要传递json格式的数据,可以这样做:

import requests

import json

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.post('https://www.example.com', json=json.dumps(payload))

print(r.url)

3、header参数

header可以携带请求头中的一些参数信息,如User-Agent来模拟打开某个浏览器。可以这样写:

import requests

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

r = requests.post('https://www.example.com', headers=headers)

print(r.text)

三、请求参数的特殊用法

1、timeout

如果请求时间太长,我们可以设置它的时间,单位是秒:

import requests

requests.get('https://www.example.com', timeout=10)

2、proxies

有时候需要通过代理访问某个网站,这时可以使用proxies参数。proxies参数是字典类型的,包含http和https两个键,它们分别对应一个代理地址,可以这样使用:

import requests

proxies = {'http': 'http://{}:{}'.format('192.168.0.1', '8888'), 'https': 'https://{}:{}'.format('192.168.0.1', '8888')}r = requests.post('https://www.example.com', proxies=proxies)

print(r.text)

四、总结

请求参数在requests中是一种非常重要的使用方式,通过requests发送请求时使用不同的参数,可以带来不一样的效果。包括:params参数在请求中添加查询参数;data参数在header中添加form表单;json参数在header中添加json类型数据;header参数模拟浏览器访问。另外,还可以通过timeout参数设置超时时间,以避免用户等待过长的响应时间,通过proxies参数设置代理地址,以实现通过代理访问网站的需求。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行