打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python网络请求模块requests

Python网络请求模块requests


背景介绍

之前说了,公司有一个需求需要使用python实现。由于公司服务器上的python版本是2.7我在写这个需求时,用到网络请求这部分时,发现python 2.7版本的请求模块真的是设计很不合理,urllib和urllib2两个包,我弄的云里雾里的,索性我就不适用自带内建函数, 寻找第三方函数库了,发现requests这个函数库非常的便捷(http for humans).直接使用pip install requests命令即可安装。

requests quick start

发送请求

def function():# 发送get请求获得一个response对象(我们可以从响应对象获得我们想要的一切数据)res = requests.get("https://api.github.com/events")# 发送post请求res = requests.post("http://httpbin.org/post",data={"key":"value", ...})# 发送put请求res = requests.put("http://httpbin.org/put",data={"key":"value", ...})# 发送delete请求res = requests.delete("http://httpbin.org/delete")res = requests.head("http://httpbin.org/get")res = requests.options("http://httpbin.org/get")pass//你没看错就是那么简单,非常符合正常人的思维很简便//再次强调我们能够从response对象中获得我们想要的一切数据信息

构造请求参数发送请求

get请求参数构造

def function():# 请求参数payload = {'key1': 'value1', 'key2': 'value2'}res = requests.get("http://httpbin.org/get",params=payload)# 注意是params参数# requests 会自动帮我们拼接请求地址# url= http://httpbin.org/get?key1=value1&key2=value2//针对get请求使用的即使params参数,post请求使用的是data参数

post form表单请求参数构造

def function():# form表单要提交的数据payload = {'key1': 'value1', 'key2': 'value2'}res = requests.post("http://httpbin.org/post",data=payload)# 注意是data参数

post json对象请求提交参数

def function():# post 提交json对象数据payload = {'key1': 'value1', 'key2': 'value2'}res = requests.post("http://httpbin.org/post",data=json.dumps(payload))# 第一种方式res = requests.post("http://httpbin.org/post",json=payload)# 第二种方式

构造请求头headers

def function():# 构造请求头,请求头也是字典格式headers = {'user-agent': 'my-app/0.0.1'}url = "https://api.github.com/some/endpoint"res = requests.get(url,headers=headers)

构造cookies请求

def function():# 构造cookiescookies = dict(sessionId='Jsession3123131')url = "http://httpbin.org/cookies"requests.get(url,cookies=cookies)//比如有些应用可能需要携带某些cookie才能验证授权,那么此时就很有用了

构造请求超时设置

def function():# 设置请求超时时间requests.get('http://github.com', timeout=0.01) # 0.01秒没响应就请求超时失败

Response响应内容

content = res.content(原始二进制数据)# 大部分情况使用这个方法text = res.text(文本数据信息,requests自动帮我们以指定编码解析出来的内容)# 响应json数据信息,通常我们使用json模块来处理json_data = res.json()# 响应状态码status_code=res.status_code# 响应头headers = res.headers# 响应cookiescookies = res.cookies

总结

一句话requests函数库非常的简便 for humans,做网络爬虫时也可以使用该库函数。高级部分请参考,官方高级应用参考。

参考

1、http://docs.python-requests.org/en/latest/user/quickstart/
2、http://docs.python-requests.org/en/latest/user/advanced/#advanced
3、http://docs.python-requests.org/en/latest/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
每天一个python模块之Requests
Python Requests快速入门
Python爬虫利器一之Requests库的用法 | 静觅
python+requests——发送post请求——各种情况
requests库快速入门(参照官方文档翻译整理)
详解新一代 HTTP 请求库:httpx
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服