安装

直接使用pip就可以安装:

pip install requests

使用

1、发送请求

import requests #导入requests,然后就可以为所欲为了

#发送get请求

r0 = requests.get("http://yunweicai.com")

#发送post请求

r1 = requests.post("http://yunweicai.com",data={key:value})

#发送post请求,带json串

json_data = {"user":"yunweicai","op":"post"}

r11 = requesets.post("http://yunweicai.com",json=json_data)

#put、delete、head、optiions请求也很简单

r = requests.put('http://yunweicai.com/put', data = {'key':'value'})

r = requests.delete('http://yunweicai.com/delete')

r = requests.head('http://yunweicai.com/get')

r = requests.options('http://yunweicai.com/get')

2、URL参数

URL 的查询字符串(query string)传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如, yunweicai.com/get?key=val。

requests库操作就比较优雅了,requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get("http://yunweicai.com/get", params=payload)

通过打印输出该 URL,你能看到 URL 已被正确编码:

print(r.url)

3、相应内容

通过发送请求返回的对象,我们就可以获取到服务器对我们的相应内容了。Requests 会自动解码来自服务器的内容。请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 r.text 之时,Requests 会使用其推测的文本编码。

你可以找出 Requests 使用了什么编码,并且能够使用 r.encoding 属性来改变它:

>>> r.encoding'utf-8'>>> r.encoding = 'ISO-8859-1'

如果返回的json串,可以直接使用r.json()获取到字典对象进行操作

如果响应内容是二进制呢?

对于响应内容是非文本请求,可以使用r.content访问到内容。

例如,以请求返回的二进制数据创建一张图片,你可以使用如下代码:

>>> from PIL import Image>>> from io import BytesIO>>> i = Image.open(BytesIO(r.content))

4、定制请求头

有些请求需要有指定的请求头才能正确获取到内容。

headers = {'user-agent': 'my-app/0.0.1'}

r= requests.get("http://yunweicai.com",headers=headers)

5、cookies

有些请求需要依赖于cookies来完成操作,就需要从上个请求中获取到cookies然后传入下一个请求:

r0 = requests.get("http://yunweicai.com/login")

r1 = requests.post("http://yunweicai.com/asset",data={"hostname":"yunweicai",cookies= r0.cookies}

Python - 优雅而简单地完成http请求相关推荐

  1. python调用有道翻译_如何用python“优雅的”调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  2. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  3. 用Python建立最简单的web服务器

    用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认 ...

  4. python界面设计-手把手教你用Python设计一个简单的命令行界面

    原标题:手把手教你用Python设计一个简单的命令行界面 对 Python 程序来说,完备的命令行界面可以提升团队的工作效率,减少调用时可能碰到的困扰.今天,我们就来教大家如何设计功能完整的 Pyth ...

  5. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  6. 使用python做最简单的爬虫

    使用python做最简单的爬虫 --之心 #第一种方法import urllib2 #将urllib2库引用进来response=urllib2.urlopen("http://www.ba ...

  7. 使用Python实现一个简单的接口服务

    使用Python实现一个简单的接口服务,可以通过get.post方法请求该接口,拿到响应数据.创建一个api_server.py文件,添加代码如下: import flask, json from f ...

  8. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  9. 用python写一个简单的web服务器

    人生苦短,我用python 简洁高效,这才是理想的语言啊 分享一点python的学习经验-----如何用python写一个简单的web服务器 首先,我们需要简单地了解一下网络通信协议,这里用白话介绍一 ...

最新文章

  1. Redis生产环境架构选型方案对比
  2. 黑客暗网叫卖Zoom账号密码,1分钱能买71个,加密大佬教袁征做人,17年前开源软件现在又火了...
  3. sql server 用户'sa'登录失败(错误18456)
  4. 网站访问过程理解(一点记录)
  5. 电力论文:基于牛顿拉尔逊(直角坐标)的电气潮流计算(python实现)
  6. halcon select_shape_xld按区域大小描绘xld
  7. win10个人壁纸默认保存位置
  8. 二维码_encode与decode
  9. 多功能PCIE交换机之七:单NT到双NT
  10. spring c3p0 mysql_spring boot整合mybatis使用c3p0数据源连接mysql
  11. Base64编码流程
  12. DHCP:(3)思科防火墙ASA上部署DHCP服务以及DHCP中继
  13. 联想拯救者y7000p加内存条_内存、硬盘不够用?手把手教你升级联想拯救者Y7000P...
  14. Fedora:使用Fedora 28在Firefox上启用h264视频(搜狐/优酷视频)
  15. 在计算机里面建一个新的文档,电脑上的word怎么新建文档
  16. LeetCode 633.平方数之和(python题解)
  17. 教你如何使用Excel中的INT函数
  18. 高危行业?程序员不仅秃得早,还会死的早!
  19. sel4源码解析(三) - sel4系统调用处理流程
  20. 计算机科学丛书收藏,计算机科学丛书:机器学习

热门文章

  1. 已知自然常数e的泰勒展开式是_泰勒公式:微分学的顶峰 (数学分析 · 导数的应用 (2))...
  2. matlAB gui 变成c,matlab改变GUI和figure左上角图标的方法,并生成exe文件
  3. mac安装helm工具_部署利器 helm v3 安装以及使用指南
  4. excel表格数字显示不全_表格技巧—Excel里身份证号码显示不全的多种解决办法...
  5. Spring各模块的功能及互相之间的关系
  6. linux unix域socket_从文件描述符到Socket
  7. 利用Python进行数据分析--数据加载、存储与文件格式
  8. 数据挖掘对客户进行深入分析
  9. 8分频verilog线_解密POE交换机供电秘密,8芯网线断芯不再害怕!
  10. java 参数传值的练习题及答案_04_javaSE面试题:方法的参数传递机制