Requests 是基于Python开发的HTTP网络请求库。
GET请求
import requests
url = "https://xxxx"
response1 = requests.get(url=url)
response1.encoding = response1.apparent_encoding # 转码
print(response1.url) # 请求地址
print(response1.text) # 内容的文本形式
print(response1.content) # 内容的二进制形式
print(response1.cookies) # cookies
params = {'key1':'value1','key2':'value2'}
response2 = requests.get(
url=url,
params=params
)
print(response2.url) # 请求地址 // 有参数时:https://www.baidu.com/?key2=value2&key1=value1
POST
import requests
url = "https://xxxx"
params = {'key1':'value1','key2':'value2'}
'''POST请求'''
headers = {
'User-Agent': 'xxx'
}
response3 = requests.post(
url=url,
data=params,
headers=headers
)
其他参数说明
无论是get
还是post
,又或者是其他方式的请求,都是在由工厂方法request
产生的,该方法会多出一个参数method来却分是什么类型的请求。
def request(method, url, **kwargs):
:param method: // 请求方式
:param url: // 请求url
:param params: // 字典形式的参数,可选
:param data: // 字典、元组列表、字节、文件对象,可选
:param json: // json数据,可选
:param headers: // 请求头,字典类型,可选
:param cookies: // cookies,字典或cookies对象,可选
:param files: // 上传文件
:param timeout: // 超时时间
:param allow_redirects: // 是否允许重定向,默认为 true
:param proxies: // 代理
:param verify: // 是否需要证书,true时,必须传cert参数
:param stream: // 是否是字节流,默认为 true
:param cert: // 证书
关于cookies和session会话
import requests
url = "https://xxxx"
# 获取到 cookies
req1 = requests.get(url=url)
cookies = req1.cookies
# 在下次访问该网站时,带上cookies完成验证
req2 = requests.post(
url=url,
data={'key1':'value1','key2':'value2'},
cookies=cookies
)
print(req2.text)
Python中的session会话会自动帮助我们完成cookies,headers等信息,这样我们每次访问的时间就无需多次传递cookies等信息。
# 首先我们需要创建一个session会话
session = requests.session()
# 访问一次网站,获取到cookies信息
session.get(url=url)
# 当我们再次访问该网站当其他网页内容是,我们无需要传递cookies了
req = session.post(
url=url,
data={'key':'value'}
)
print(req.text)
网友评论