Python requests库

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:;" onclick="location.reload()">如果页面没有响应,请点这里刷新</a>';
setTimeout('location.reload()', 3000);
</script>
</div></div>
</div>
]]></root>
[Finished in 2.6s]

  

posted @ 2019-01-13 14:35  西夏一品唐  阅读(220)  评论(0编辑  收藏  举报