Python安装request,python requests模块的安装和使用方法
Requests是一个常用的http请求库,用python语言编写,可以方便地发送http请求和处理响应结果。下面这篇文章主要介绍python中请求的安装和常见用法,有需要的朋友可以参考一下。
00-1010I。请求二。请求安装模式III。说说两个常见的请求,get和post1,get请求II,post请求IV,requests发送请求V. response补充:请求中遇到的问题汇总
目录
网上有很多请求的表达。简单来说就是python中非常强大的类库,可以帮你发送很多网络请求,比如get、post、put、delete等。这里最常见的应该是get和post。
一、requests
$ pip安装请求
$ easy_install请求
二、requests安装方式
三、说说常见的两种请求,get和post
(1)参数紧跟在url后面,即“?”url的形式为key=valuekey=value
(2)由于get的参数对外公开,一般不传递敏感信息,常用于查询等操作。
(3)由于参数跟随url,上传的数据并不大。
1、get请求
(1)参数可以写在url之后或正文中。
(2)使用body上传请求的数据,并且上传的数据大于get。
(3)因为写在正文里,所以相对安全。
帖子文本格式
(1)表单表单的html提交数据的默认格式
内容类型:application/x-www-form-urlencoded
示例:username=adminpassword123
(2)多部分形式数据。复合形式可转移数据文件
(3)纯文本格式raw,最常见的json。xml html js
内容类型:应用程序/json。文本/xml。文本/html
(4)二进制。二进制格式:只能上传一个文件。
2、post请求
1.requests发送get请求。
URL= http://www . search :9001/search/
Param={key 3360 hello}
res=requests.get(url=url,params=params)
2.request发送一个post请求(如果有cookie,那么请求体是json格式的)
heads={ content-type 3360 application/JSON } #必须有
URL= http://www . search :9001/search/
Data={key 3360 Hello}
cookies={ uid :
1"}
res = requests.post(url=url, headers=headers, data=data, cookies=cookies)
3、 request发送post请求 (body是urlencoded格式)
url = "http://www.search:9001/search/"data= {"key":"你好"}
res = requests.post(url=url, headers=headers)
4、 request上传文件
def post_file_request(url, file_path):if os.path.exists(file_path):
if url not in [None, ""]:
if url.startswith("http") or url.startswith("https"):
files = {file: open(file_path, rb)}
res = requests.post(url, files=files, data=data)
return {"code": 0, "res": res}
else:
return {"code": 1, "res": "url格式不正确"}
else:
return {"code": 1, "res": "url不能为空"}
else:
return {"code": 1, "res": "文件路径不存在"}
五、response
request发送请求后,会返回一个response,response里有好多信息,我进行了一下封装,基本如下
@staticmethoddef get_response_text(response):
if response not in [None, ""]:
if isinstance(response, requests.models.Response):
return {"code": 0, "res": response.text.encode(utf-8).decode(unicode_escape)} #这种方式可以将url编码转成中文,返回响应文本
else:
return {"code": 1, "res": "response不合法"}
else:
return {"code": 1, "res": "response对像不能为空"}
@staticmethod
def get_response_status_code(response):
if response not in [None, ""]:
if isinstance(response, requests.models.Response):
return {"code": 0, "res": response.status_code} #返回响应状态吗
else:
return {"code": 1, "res": "response不合法"}
else:
return {"code": 1, "res": "response对像不能为空"}
@staticmethod
def get_response_cookies(response):
if response not in [None, ""]:
if isinstance(response, requests.models.Response):
return {"code": 0, "res": response.cookies} #返回cookies
else:
return {"code": 1, "res": "response不合法"}
else:
return {"code": 1, "res": "response对像不能为空"}
@staticmethod
def get_response_headers(response):
if response not in [None, ""]:
if isinstance(response, requests.models.Response):
return {"code": 0, "res": response.headers} #返回headers
else:
return {"code": 1, "res": "response不合法"}
else:
return {"code": 1, "res": "response对像不能为空"}
@staticmethod
def get_response_encoding(response):
if response not in [None, ""]:
if isinstance(response, requests.models.Response):
return {"code": 0, "res": response.encoding} #返回编码格式
else:
return {"code": 1, "res": "response不合法"}
else:
return {"code": 1, "res": "response对像不能为空"}
补充:requests中遇到问题
获取cookie
# -*- coding:utf-8 -*-#获取cookie
import requests
import json
url = "https://www.baidu.com/"
r = requests.get(url)
#将RequestsCookieJar转换成字典
c = requests.utils.dict_from_cookiejar(r.cookies)
print(r.cookies)
print(c)
for a in r.cookies:
print(a.name,a.value)
>> 控制台输出:
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
{BDORZ: 27315}
BDORZ 27315
发送Cookie
# -*- coding:utf-8 -*-#发送cookie到服务器
import requests
import json
host = "*****"
endpoint = "cookies"
url = .join([host,endpoint])
#方法一:简单发送
# cookies = {"aaa":"bbb"}
# r = requests.get(url,cookies=cookies)
# print r.text
#方法二:复杂发送
s = requests.session()
c = requests.cookies.RequestsCookieJar()
c.set(c-name,c-value,path=/xxx/uuu,domain=.test.com)
s.cookies.update(c)
总结
到此这篇关于python中Requests请求的安装与常见用法的文章就介绍到这了,更多相关python中Requests请求内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。