1、发出一个get请求:

r = requests.get('https://github.com/timeline.json')

返回给我们的r,是一个requets的对象,这个requests的对象中我们可以调用一些属性,方便我们得到更加详细的信息;

r.status_code        # 响应状态码
r.content            # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.headers            # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.json               # Requests中内置的JSON解码器
r.url                # 获取url
r.encoding           # 编码格式
r.cookies            # 获取cookie
r.raw                # 返回原始响应体
r.text               # 字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.raise_for_status() # 失败请求(非200响应)抛出异常

同时,get方法可以接受参数:

# -*- coding:utf-8 -*-import requests# 字典的形式填充参数
params = {'k1': 'v1', 'k2': 'v2'}
r = requests.get('http://www.baidu.com', params=params)

get请求,是将参数添加到url上:

http://www.baidu.com/?k2=v2&k1=v1

同时你也可以把列表当做字典的值传到url中:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}r = requests.get('http://www.baidu.com', params=params)

#得到的url:http://www.baidu.com/?k2=v2&k2=v3&k2=v4&k1=v1

添加请求头:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}
header = {'k1': 'v1', 'k2': 'v2'}r = requests.get('http://www.baidu.com', params=params, headers=header)

2、发起一个post的请求:

import requestsparams = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}
header = {'k1': 'v1', 'k2': 'v2'}r = requests.post('http://httpbin.org/post', data=params, headers=header)

当然我们可以使用post传递json文件:

import requests
import jsonparams = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}
header = {'k1': 'v1', 'k2': 'v2'}# 使用json库,序列化python数据类型为json字符串
json_data = json.dumps(params)r = requests.post('http://httpbin.org/post', data=json_data, headers=header)

除了对dict进行编码后传递,还可以json参数直接进行传递,它会自动帮我进行编码:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}
header = {'k1': 'v1', 'k2': 'v2'}
json_data = json.dumps(params)
# 使用json参数传递参数,传递之前会先进行序列化
r = requests.post('http://httpbin.org/post', json=params, headers=header)

设置超时时间:

timeout 仅对连接过程有效,与响应体的下载无关。 timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常(更精确地说,是在timeout 秒内没有从基础套接字上接收到任何字节的数据时)

转载于:https://www.cnblogs.com/liyu2151/p/7132735.html

4、requests-基础相关推荐

  1. python爬虫学习笔记-requests基础

    爬虫初始 为什么要学习爬虫 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无 ...

  2. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. requests基础3

    Cookie 如果某个响应中包含一些 cookie,你可以快速访问它们: >>> url = 'http://example.com/some/cookie/setting/url' ...

  4. post python爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

  5. requests基础爬虫案例

    requests简单几个案例学习爬虫知识 简单搜狗页面下载 简易网页抓取器 爬取肯德基查询地点 豆瓣电影详情数据 百度翻译 药监局监督管理相关数据 从零开始学习爬虫,一步一步走下去,最终完成项目实战, ...

  6. Requests基础用法

    目录 发送请求 传递 URL 参数 响应内容 文本响应内容 二进制响应内容 JSON 响应内容 原始响应内容 定制请求头 添加请求内容 发送 Multipart-Encoded 文件 响应状态码 响应 ...

  7. python3.8使用requests_python3.8.1 入门基础学习 之 【 requests 基础学习,python3爬虫必备基础】...

    0.安装 0.1.pip安装 pip install requests 0.2.pipenv安装在虚拟环境下安装 pipenv install requests 0.3.使用之前必须在文件中导入 im ...

  8. 爬虫3 requests基础之 乱码编码问题

    import requests res = requests.get('http://www.quanshuwang.com') res.encoding = 'gbk' print(res.text ...

  9. 爬虫3 requests基础之下载图片用content(二进制内容)

    res = requests.get('http://soso3.gtimg.cn/sosopic/0/11129365531347748413/640') # print(res.content) ...

  10. 爬虫3 requests基础2 代理 证书 重定向 响应时间

    import requests # 代理 # proxy = {# 'http':'http://182.61.29.114.6868' # } # res = requests.get('http: ...

最新文章

  1. python3 字符串前面加上'r'的作用
  2. java里程序控制流程_Java语言中的程序流程控制
  3. javascript 给关键字加链接
  4. python+scapy 抓包与解析
  5. Java反射之将对象转成map
  6. 通过bootstrap来学习less
  7. Android启动流程
  8. arraylist 初始化_ArrayList实现原理(JDK1.8)
  9. 梅原对justin wang 真人版
  10. C++中的函数汇总(新手必知)!
  11. Js中Array对象
  12. 洛谷P3402 【模板】可持久化并查集
  13. mysql数据库主从停止_Mysql 主从数据库
  14. 计算机组成原理第三章课后答案,《计算机组成原理》第三章课后题参考答案
  15. aip格式转化为pdf,catia的三维图转PDF格式咋弄
  16. PLSQL工具连接Oracle
  17. switch比ifelse效率高
  18. 计算机自带的游戏怎么找xp,教你怎样查询Windows XP/Windows 7自带系统游戏路径
  19. 0415学习笔记:3决策树
  20. 基层管理者的第一步——从“我”变成“我们”

热门文章

  1. Flink 1.7.2 dataset transformation 示例
  2. 6000个边缘Kubernetes节点驱动城市80万次智能停车,如何成为可能?
  3. [零基础学JAVA]Java SE应用部分-34.Java常用API类库
  4. 如何提高安卓代码的质量和语法
  5. 第四次作业类测试代码+036+吴心怡
  6. 学习linux第二周作业
  7. xcode 开发ios兼容性问题的上下黑边 和 coco2d-x 游戏分辨率适配 ResolutionPolicy::FIXED_WIDTH 都会引起上下黑边问题!!!...
  8. win7中输入文件夹首字母跳到相应的文件或者文件夹,却在搜索栏出现输入的字母...
  9. 【excel技巧读书笔记001】清除打开过的文件记录
  10. RHEL/CentOS下编译安装Nginx