2019独角兽企业重金招聘Python工程师标准>>>

1.requests库文档链接

  • 官方文档:http://www.python-requests.org/en/master/

  • 第三方中文文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

2.使用requests发送get请求

  • 使用requests发送get请求,首先需安装requests模块,然后导入使用;
pip install requestsimport requests
  • 然后可以使用例如:r = requests.get('https://www.baidu.com'),方法获取某个网页,r表示一个 Response 对象,我们从这个对象中获取所有我们想要的信息;
import requests
from requests.cookies import RequestsCookieJar
r = requests.get('https://www.baidu.com')

3.如何传递url参数

  • 如果我们想要手动构建URl,可以使用params关键字来传参,如:
r = requests.get('https://www.baidu.com') ,params={'id': 'abc'})print(r.url)    # 输出:https://www.baidu.com/?id=abc;
  • 所以我们可以知道如果是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面;

4.resquest中常用的Response响应信息

  • r.text:返回响应对象,Unicode型数据,主要取文本;
r = requests.get('https://www.baidu.com')
print(r.text)
  • r.content:返回响应对象,bytes型,二进制数据,主要取图片和文件等,中文显示为字符;

  • r.url:获取当前请求的url;

  • r.json():Requests中内置的JSON解码器;

  • r.encoding:编码方式;

  • r.status_code:状态响应码;

  • r.headers:响应头;

  • r.cookies:返回cookie;

5.使用requests发送post请求

  • POST请求方式的编码方式,也就是Content-Type的类型一般有3种,分别是:

  • application/x-www-form-urlencoded:以form表单形式提交数据,使用的时候只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可;

import requests
from requests.cookies import RequestsCookieJar
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload )
print(r.text)# 输出打印中的headers中是"Content-Type": "application/x-www-form-urlencoded",所以我们可以知道application/x-www-form-urlencoded是默认的post请求的Content-Type
  • application/json:以json格式提交数据,主要是用于发送ajax请求中,动态加载数据;

  • multipart/form-data:一般用于上传文件,使用时需要将文件传给requests.post()的files参数;

6.超时

  • 为了防止服务器响应缓慢,导致客户端处理异常,requests请求大多设置 timeout 参数,例如:requests.get('http://baidu.com', timeout=10),如果需要让 request 永远等待,则传入一个 None 作为 timeout 的值;
import requests
from requests.cookies import RequestsCookieJar
r = requests.get('https://www.baidu.com', timeout=0.001)
print(r)
# 执行代码时会报错,因为在0.001秒时服务器响应还没有完成

7.Cookie

  • Cookie 的返回对象为 RequestsCookieJar,它的行为和字典类似,但接口更为完整,适合跨域名跨路径使用,可以把 Cookie Jar 传到 Requests 中来请求登录页面,例如:r = requests.get('[https://www.baidu.com/',](https://www.baidu.com/',) cookies=jar); 我们来尝试一下使用cookie获取登录豆瓣官网之后的信息
  • 获取cookie
from requests.sessions import Session
# 返回一个会话的上下文管理器对象
requests = Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
date = {'ck':'', 'name':'xxxxxxxx', 'password': 'xxxxxxxx', 'remember':'false', 'ticket': ''}
result = requests.post('https://accounts.douban.com/j/mobile/login/basic', data=date, headers=headers)
print(result.text)
# 拿到cookie
cookies = result.cookies
for i in cookies:print(i)
for item in cookies.iteritems():print(item)
print(cookies.get_dict())
print(cookies.list_paths())
print(cookies.list_domains())
print(cookies.items())
  • 获取使用cookie请求登录页面
from requests.cookies import RequestsCookieJar
import requests
jar = RequestsCookieJar()
jar.set('bid', 'OvpnenMUNWo', domain='.douban.com', path='/')
jar.set('dbcl2', r'"153039786:aYRnqJukECk"', domain='.douban.com', path='/')
r = requests.get('https://www.douban.com/', cookies=jar)
print(r.text)

参考:https://www.9xkd.com/user/plan-view.html?id=7679321890

转载于:https://my.oschina.net/u/4072026/blog/3060019

requests第三方库在测试中的使用相关推荐

  1. 通过python requests第三方库抓取淘宝商品名称和信息价格

    项目名称:淘宝爬虫之抓取商品标题和价格信息 任务背景: 公司要求提取各电商平台的咖啡机的价格信息,在淘宝开放平台找不到合适的API..获取价格就是为了产品定价,和将来打价格战. 实现用到的库:requ ...

  2. python安装成功第三方库但import出问题_解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程...

    一.问题具体描述: 在cmd控制台 pip install xxxx 后并显示安装成功后,并且尝试用cmd 的python 中import xxxx ,没有显示异常,说明这个库是安装成功了的.(这里以 ...

  3. python基础和第三方库 笔记(python基础完结包括高级用法,第三方库持续更新中...)

    python基础 注:本笔记面向有一定基础的人 本笔记是本人快速复习python过程中记录的,不适合零基础的人学习python的主工具,可以作为辅工具,本笔记记录了入门阶段常用操作,如有错误的地方,希 ...

  4. c语言如何引入第三方库,在Rust中,如何从第三方库定义或导入C结构体?

    Rust FFI指南( http://static.rust-lang.org/doc/master/guide-ffi.html)很好地演示了如何导入使用由Rust std :: lib库(例如si ...

  5. mac如何导入python第三方库_Mac系统中python idle导入第三方模块成功,ecplise导入python第三方模块失败解决方法...

    遇到一个比较纠结了4个月的问题,一直没有在意,今天实在忍受不了,尝试各种解决办法,终于把这个烦人的问题完美解决,不敢独享,写出来和各位大神共享. 问题:在mac OSx操作系统下,安装了python第 ...

  6. Python 离线 安装requests第三方库

    一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...

  7. Python开发——安装requests第三方库

    一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...

  8. python安装request库_Python——安装requests第三方库

    使用pip安装 在cmd下cd到这个目录下C:\Python27\Scripts,然后执行pip install requests 在cmd 命令行执行 E:   进入e盘 cd  Python\pr ...

  9. vscode python第三方库检测_VSCode中使用Pylint检查python代码

    为什么使用lint 在日常开发中,不同开发人员会写下不同风格的代码,导致代码可维护性变差,为了解决风格不一致问题,我们可以制定代码规范,让开发人员都遵守同样的规范编写代码.在开发过程中,部分代码存在质 ...

  10. Python实训day04am【爬虫介绍、爬取网页测试、Python第三方库】

    Python实训-15天-博客汇总表 目录 1.文本文件编程题 2.爬虫(Scrapy) 2.1.安装第三方库 2.2.爬取网页测试 2.2.1.样例1 2.2.2.样例2 3.PyCharm导入第三 ...

最新文章

  1. 服务器用户设置备份,用户管理的备份
  2. Freemarker和Spring开发:获取相对路劲和绝对路径的最优方式
  3. jupyter配置r
  4. NTP时间同步服务器报错:no server suitable for synchronization found
  5. javascript prop和attr的区别
  6. Objecttive-C 创建多线程
  7. 区块链和比特币以及挖矿
  8. 文件重定向函数freopen
  9. Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
  10. 理解 LruCache 机制
  11. ML_集成学习与Boosting模型
  12. 2021年全国电子设计竞赛题目
  13. IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
  14. Flex Builder4.7 与 MyEclipse2013集成 64位
  15. 3DES加密解密方法
  16. if 标准体重 的计算
  17. 简单分账系统的分账流程是什么样的?
  18. 如何打包c#编写的程序
  19. 可以将 UI 设计图直接生成代码,简直太神奇了,这真的是解放了程序员生产力吗?...
  20. 无线蓝牙耳机哪款音质好?目前音质最好的无线蓝牙耳机推荐

热门文章

  1. 如何设置GridView的列宽
  2. ***编程DIY (Delphi版) - 第2篇 单实例运行
  3. Android音频的播放
  4. Chrome 87 发布,获多年来最大性能提升
  5. 如何使用ES6模块export,export default和import
  6. 学习笔记(前端跨域 Storage封装)
  7. 分享几个vue后台模板
  8. OFFICE技术讲座:一级标点压缩共有几种情形
  9. JDK的问题:用C启动虚拟机跟java运行结果有差异
  10. 错误: 程序包org.eclipse.swt.graphics不存在/swt.jar下载方法