Python requests是python的一个HTTP客户端库,可以使用requests库提供的方法对http协议进行请求。
requests安装:
Pip install requests
也可以下载安装包进行安装。
Python setup.py install
Requests 方法:
发送get请求的方法,语法格式
get(url, params=None, **kwargs)
Url:请求的url地址
Params:(可选)字典,要发送的元组或字节列表的参数
发送options请求的方法,语法格式:
options(url, **kwargs)
Url:请求的url地址
发送head请求的方式,语法格式:
head(url, **kwargs)
Url:请求的url地址
发送post请求的方法,语法格式:
post(url, headers=None,data=None, json=None, **kwargs)
Url:请求的url地址
Headers:请求的头部信息
Data:可发送参数数据(可选),字典、元组列表,字节或类文件
Json:可发送以json格式的参数数据
发送put请求的方法,语法格式:
put(url, data=None, **kwargs)
Url:请求的url地址
Data:可发送以字典,元组列表,字节或类文件的参数
发送patch请求的方法,语法格式:
patch(url, data=None, **kwargs)
Url:请求的url地址
Data:可发送以字典,元组列表,字节或类文件的参数
发送delete请求的方法,语法格式:
delete(url, **kwargs)
Url:请求的url地址
请求响应的属性:
1、content:返回请求的(html)页面内容。
2、status_code:返回请求的状态码,如200,404,500
3、headers:返回头部信息,如下:
{'Content-Length': '4591', 'X-Powered-By': 'PHP/5.4.7', 'Set-Cookie': 'pO5_sid=XVJfCz; expires=Sun, 20-Jan-2019 06:25:45 GMT; path=/; httponly', 'Keep-Alive': 'timeout=5, max=100', 'Server': 'Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7', 'Connection': 'Keep-Alive', 'Date': 'Sun, 13 Jan 2019 06:25:45 GMT', 'Content-Type': 'text/html'}
4、url:返回请求的url地址。
5、encoding:返回支持的编码类型ISO-8859-1
6、reason:返回状态,如(成功:ok,找不到页面:not found)
7、cookies:返回cookie信息,以字典的形式
8、elapsed:请求消耗的时间。如:0:00:01.075466
9、text:请求响应的数据,与content内容相似。
下面取最常用的两个方法get、post方法进行演示。
Get请求:
url='http://localhost:8090/test/logging.php
response=requests.get(url)
print response
运行结果:
<Response [200]>
[Finished in 1.5s]
Post请求:
url='http://localhost:8090/test/logging.php?action=login&loginsubmit=yes&floatlogin=yes&inajax=1'
loginParam={
"formhash":"1f3a2bb2",
"referer":"http://localhost:8090/discuz/",
"loginfield":"username",
"username":"A12345",
"password":"123456",
"questionid":"0",
"answer":""
}
response=requests.post(url=url,data=loginParam)
print response.text
运行结果:
<?xml version="1.0" encoding="utf-8"?><root><![CDATA[<script type="text/javascript" reload="1">
display('main_messaqge');
display('layer_login');
display('layer_message');
$('messageleft').innerHTML = '<p>欢迎您回来 新手上路 A12345</p>';
$('messageright').innerHTML = '<a href="javascript:;" οnclick="location.reload()">如果页面没有响应,请点这里刷新</a>';
setTimeout('location.reload()', 3000);
</script>
</div></div>
</div>
]]></root>
[Finished in 2.6s]