Python中requests模块get请求、post请求添加头部、添加Cookie

1、GET请求

# requests GET请求

import requests

# 第一种
url = 'https://www.sogou.com/web?query=python'
rep = requests.get(url)
print(rep)  # 输出 <Response [200]>

# 第二种
url1 = 'https://www.sogou.com/web'
params = {'query': 'python'}
rep1 = requests.get(url1, params)
print(rep1)  # 输出 <Response [200]>

print(rep1.status_code)  # 返回响应码
print(rep1.url)  # 输出请求连接
print(rep1.raw.read())  # 输出原始相应体,一般不用
print(rep1.content.decode())  # 字节方式的相应体,需要解码
print(rep1.text)  # 字符串方式的响应体,会自动解码
print(rep1.headers)  # 以字典的格式返回相应头部
print(rep1.json())  # Requests自带的json解码器  返回的是json数据时使用
print(rep1.raise_for_status())   # 请求失败时的响应码
print(rep1.cookies.items())  # 返回cookie字典
print(rep1.encoding)  # 返回编码方式

2、POST请求

# requests POST请求

import requests
import json

# POST请求的url同get请求,参数有一下几种
# 1、字典类型
data0 = {"k1": "v1", 'k2': 'v2', 'k3': 'v3'}

# 2、元组或者列表
data1 = (('k1', 'v1'), ('k2', 'v2'))

# 3、Json类型
data2 = {"k1": "v1", 'k2': 'v2', 'k3': 'v3'}
data3 = json.dumps(data2)

response0 = requests.post("https://www.baidu.com/", data=data3)
print(response0.text)  # 返回HTML源码  str类型
print(type(response0.text))

#  requests的POST还有其他参数可以输入
#  requests的POST还有其他参数可以输入
#  requests的POST还有其他参数可以输入

#  1、增加头部 headers、 使用代理IP、证书验证、超时设置、cookie

# 增加头部
headers = {
    'Content-type': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64;'
                  ' x64) AppleWebKit/537.36 (KHTML, like'
                  ' Gecko) Chrome/89.0.4389.90 Safari/537.36',
    'Cookie': 'JSESSIONID=123456789;name=value'   ## 这里也可以设置cookie
}
response1 = requests.post("https://www.baidu.com/", data=data3, headers=headers)


# 使用代理

proxies = {
    'http': 'http://10.10.11.1:2342',
    'https': 'https://10.12.11.2:2345'
}
response2 = requests.post("https://www.baidu.com/", data=data3, headers=headers, proxies=proxies)

# 证书验证
# 1、不验证:verify=False   2、验证 verify=True   3、设置证书路径 verify='/path/certfile'
response3 = requests.post("https://www.baidu.com/", verify=False)

# 超时设置 timeout=0.01  单位 s
response4 = requests.post("https://www.baidu.com/", timeout=0.01)



3、两种格式的cookie

# requests 设置Cookie

import requests
from requests import utils

# requests 中加Cookie参数,参数类型为字典或者RequestsCookieJar

# 字典形式
url = "https://wwww.baidu.caom/"
temp_cookie = 'JSESSIONID=hahfdlfhlcdnkjfl;name=value'

cookies_dict = {}
for i in temp_cookie.split(';'):
    v = i.split("=")
    cookies_dict[v[0]] = v[1]

resp0 = requests.get(url, cookies=cookies_dict)
print(resp0.text)

# RequestsCookieJar形式
# 1、获取RequestsCookieJar对象
cookies_jar = resp0.cookies
# 2、转换为字典
cookiesDict_from_jar = requests.utils.dict_from_cookiejar(cookies_jar)
# 3、字典转RequestsCookieJar对象
cookiejar_from_dict = requests.utils.cookiejar_from_dict(cookies_dict, cookiejar=None, overwrite=True)
# 4、在RequestsCookieJar对象中添加字典
cookiejar_add_cookieDict = requests.utils.add_dict_to_cookiejar(cookies_jar, cookies_dict)

# 将cookie写入文件
myCookie = resp0.cookies
cookies_dict1 = requests.utils.dict_from_cookiejar(myCookie)

# 将cookie写入文件
f1 = open('cookie_dict.txt', 'w', encoding='utf-8')
f1.write(str(cookies_dict))
f1.close()

# 从文件读cookie
f2 = open('cookie_dict.txt', 'r')
dict_value = f2.read()
f2.close()
cookie = eval(dict_value)  # 转换为字典eval函数可以将字典、列表、元组格式的字符串直接转换为对应的数据类型
resp1 = requests.get(url, cookie)
print(resp1.text)

 

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值