requests总结

requests的安装:

$pip install request

requests请求:

requests请求参数:

  • method: 设置请求方式 get、post、delete
  • url: 目标url
  • params: 跟的是get请求url地址后?后面拼接的参数
  • data: (optional) Dictionary, post请求的参数.
  • headers: (optional) Dictionary 设置请求头.
  • cookies: (optional) Dict or CookieJar object 设置用户的cookies信息.
  • files: (optional) Dictionary 文件上传(post).
  • auth: Auth 认证.
  • timeout: 设置请求的超时时间
  • allow_redirects: 设置是否允许重定向,默认是允许的
  • proxies: (optional) Dictionary 设置代理.
  • verify: (optional) Either a boolean, Defaults to True.#忽略证书认证,则设置为False

一.GET请求:

import requests

#GET请求:

kw={'kw':'长城'}
headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
url = '"http://www.baidu.com/s?"'
response = requests.get(url=url, params=kw, headers=headers)
#查看响应内容,response.text 返回的是Unicode格式的数据
print (response.text)
#查看响应内容,response.content返回的字节流数据
print (respones.content)
#查看完整url地址
print (response.url)
#查看响应头部字符编码
print (response.encoding)
#查看响应码
print (response.status_code)
#头信息
print(response.request.headers)

response.text乱码问题:

  • 当收到一个响应时,requests 会猜测响应的编码方式,用于在你调用response.text方法时对响应进行解码。
  • requests 首先在 http 头部检测是否存在指定的编码方式,如果不存在,则会使用 chardet.detect来尝试猜测编码方式(存在误差)
  • 更推荐使用response.content.deocde()

二. POST请求


POST请求:
form_data = {
    'username': 'lvruofan',
    'password': 'qq123123'
}
url = 'http://127.0.0.1:8000/api/login/'
response = requests.post(url=url, headers=headers, data=form_data)
#返回响应头
print(response.headers)
#返回相应内容,返回Unicode格式的数据
print(response.text)
# 查看响应内容,response.content返回的字节流数据
print(response.content)
#请求头信息
print(response.request.headers)
#请求状态码
print(response.status_code)
#查看返回的json数据中的token
print(response.json()['token'])

三.POST上传图片

url = 'https://httpbin.org/post'
files = {'file':open('data_page.html','r',encoding='gbk')}

response =requests.post(url=url,headers=headers,files=files)

if response.status_code ==200:
    print('上传成功')
    print(response.text)

四.设置代理

proxies={
    'http':'118.181.226.216',
    'http':'27.46.3.26'
}
url = 'http://college.gaokao.com/schlist/p1/'
response = requests.get(url=url, params=None, headers=headers,proxies=proxies)

print(response.headers)
print(response.text)
print(response.content)
print(response.request.headers)
print(response.status_code)

五.获取cookies

####设置cookies##########
#方式一:从浏览器获取cookies,放在请求的头部
#方式二,通过设置请求的cookies参数,
#cookies: (optional) Dict or CookieJar object
response = requests.get(
    url=url,headers=headers,
    cookies=cookies_dict2
)
print(response.status_code)
print('设置cookies后的请求头部',response.headers)

六.session

#session:在requests请求中,我们往往需要让上下请求保持联系,
#这时我们就需要使用session
import requests

#实例化session()对象
session = requests.session()

headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
}
response = session.get('http://www.baidu.com/',headers=headers)

print(response.headers)
print(session.cookies) #session.cookies 保存的是服务器,返回的cookies信息


#当session.cookies有用户信息之后,我们再使用session.get()或者session.post()
#发起请求时,就会自动携带cookies等信息
response = session.get('http://www.baidu.com/',headers=headers)


# 一般情况下,我们会再模拟登录时用到request.session,先完成登录,
# 然后使用session发起请求

七.处理HTTPS请求 SSL证书验证

Requests也可以为HTTPS请求验证SSL证书:
要想检查某个主机的SSL证书,你可以使用 verify 参数(Defaults to True)

import requests response = requests.get("https://www.baidu.com/", verify=True)

如果出现以下错误,表示验证证书出错:SSLError: (“bad handshake: Error([(‘SSL routines’, ‘ssl3_get_server_certificate’, ‘certificate verify failed’)],)”,)
要想跳过书验证,把 verify 设置为 False 就可以正常请求了。

import requests response = requests.get("https://www.12306.cn/mormhweb/", verify = False) print (response.text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值