一、get请求

格式:

import requests
 
req = requests.get('http://www.nnzhp.cn',data={'username':'xxx'},cookies={'k':'v'},
                   headers={'User-Agent':'Chrome'},verify=False,timeout=3)  #发送get请求,data是请求数据,
                        # cookies是要发送的cookies,headers是请求头信息,verify=False是https请求的时候要加上,要不然会报错。
                        #timeout参数是超时时间,超过几秒钟的话,就不再去请求它了,会返回timeout异常
                        #这些都可以不写,如果有的话,可以加上

方法:

import requests

#1、如下为最基本的get请求,只有url
r = requests.get('https://github.com/Ranxf') # 最基本的不带参数的get请求
print(r.status_code)# 获取返回状态码
#2、带参数的get请求
r1 = requests.get(url='http://dict.baidu.com/s', params={'wd': 'python'})      # 带参数的get请求
print(r1.url)#打印url;https://dict.baidu.com/s?wd=python
#3、带参数的get请求,及其各种返回类型
url = 'http://api.nnzhp.cn/api/user/stu_info'
params = {'stu_name':'矿泉水'}
r = requests.get(url,params)
print(r.text)#返回的是字符串
print(r.json())#返回的是json串
print(r.content)#返回bytes类型,多用于图片、音频、视频等
print(r.headers)#获取响应头
print(r.cookies)#获取返回的cookie
print(r.encoding)#获取返回的字符集
# 如下为下载一个mp3音乐到本地的方法
url = 'http://aliuwmp3.changba.com/userdata/userwork/1128447787.mp3'
r = requests.get(url)#发get请求
fw = open('music.mp3','wb')#注意此处需要用wb
fw.write(r.content)#需要使用二进制返回并写入文件
fw.close()

 

二、post请求

格式:

import requests
req2 = requests.post('http://www.nnzhp.cn',data={'username':'xxx'},cookies={'k':'v'},
                    headers={'User-Agent':'Chrome'},files={'file':open('a.txt')},timeout=3) #发送post请求,data是请求数据,
                    # cookies是要发送的cookies,headers是请求头信息,files是发送的文件,verify=False是https请求的时候要加上,
                    # 要不然会报错,timeout参数是超时时间,超过几秒钟的话,就不再去请求它了,会返回timeout异常
                    #这些都可以不写,如果有的话,可以加上

方法:

#post请求
url = 'http://api.nnzhp.cn/api/user/login'
data = {'username':'xxxx','passwd':'xxxx'}
r = requests.post(url,data)
print(r.text)

#传cookie,header,用qq群做例子
url = 'https://qun.qq.com/cgi-bin/qun_mgr/get_friend_list'
d = {'bkn':qq群号}

header = {'cookie':'对应的cookie'}
r = requests.post(url,d,headers = header)
print(r.json())

三、关于session

requests库的session会话对象可以跨请求保持某些参数,说白了,就是比如你使用session成功的登录了某个网站,

则在再次使用该session对象请求该网站的其他网页都会默认使用该session之前使用的cookie等参数

也即是说:session可以自动管理cookie

url ='http://api.nnzhp.cn/api/user/stu_info'
session = requests.session()
r = session.get(url,params={'stu_name':'矿泉水'})#session  get,使用params
r2= session.post(url,data={'stu_name':'矿泉水'})#session  post,使用data
print(r.json())
print(r.cookies)#查看cookie