一、requests库简介

requests是Python的一个HTTP相关的库

requests安装:

pip install requests

二、GET请求

import requests #首先导入reqeusts模块

res= requests.get( #使用requests模拟浏览器发送一个get请求

url="https://www.baidu.com", #指定访问的网址

)#打印响应内容:网站的源代码

print(res.text)#打印二进制响应内容;我们在拉取音乐、视频等使用

print(res.content)

reqeusts初体验

我们发送get请求时,如果URL参数需要携带参数,那么数据会以键/值对的方式置于URL中,跟在一个问号的后面,例如:ttps://www.baidu.com/s?wd=hello

importrequests#get请求,携带参数信息#http://httpbin.org/get?key1=value1&key2=value2

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

r= requests.get("http://httpbin.org/get", params=payload)print(r.text)

get请求url携带参数

你还可以将一个列表作为值传入:

#http://httpbin.org/get?key1=value1&key2=value2&key2=value3

payload = {'key1': 'value1', 'key2': ['value2', 'value3']}

r= requests.get("http://httpbin.org/get", params=payload)

传输多个值得时候

三、POST请求

通常,如果你想要发送一些编码为表单形式得数据的时候,只需要简单的给request的data传递一个字典即可。你的数据在发送请求时会自动编码为表单形式:

importrequests

payload= {'key1': 'value1', 'key2': 'value2'}#类似我们的请求体中的数据

r = requests.post("http://httpbin.org/post", data=payload)print(r.text)

post请求

很多时候,你想发送出去的数据并非编码为表单形式,如果你想传输一个json字符串,而不是一个字典,那么数据会被直接发送过去

例如,Github API v3 接受编码为 JSON 的 POST/PATCH 数据:

importrequestsimportjson

payload= {'some': 'data'}

url= 'https://api.github.com/some/endpoint'r= requests.post(url, data=json.dumps(payload))print(r.text)

post请求发送一个json字符串

四、requests参数总结

:param method: 请求方法

:param url: 目标地址的URL

:param params: 请求参数:可以是字符串、字节、字典

:param data: 可以是字典、字符串、字节、文件对象,发送的时候会在请求体中携带

:param json: 将json中对应的数据进行序列化成一个字符串,在请求体中发送给服务器,并且Content-Type是 {'Content-Type': 'application/json'}

:param headers: 请求头数据

:param cookies: 请求携带的cookie

:param files: 向服务器发送文件数据

:param auth: Auth tuple以启用基本的/摘要/自定义http auth。

:param timeout: 等待服务器响应时间,可以是浮点数

:param allow_redirects: 是否允许自动重定向,True(默认),Flase

:param proxies: 字典映射协议到代理的URL。

:param verify: 控制我们是验证服务器的TLS证书,还是字符串,在这种情况下,它必须是CA包的路径才能使用。默认为“True”。

:param stream: 是否以流的形式读取服务器传来的数据

:param cert: 如果是字符串,则为SSL客户端证书文件(.pem)的路径。如果是元组,("cert’,"key’)对。

五、响应

importrequestsimportjson

payload= {'some': 'data'}

url= 'https://api.github.com/some/endpoint'r= requests.post(url, data=json.dumps(payload))#获取响应头

print(r.headers)print(r.headers['Content-Type']) #'application/json'

print(r.headers.get('content-type')) #'application/json'

#获取响应cookie

print(r.cookies['example_cookie_name'])print(r.cookies.get_dict())#获取响应体

print(r.text)#获取响应体(二进制形式)

print(r.content)#重定向与请求历史

print(r.url)print(r.status_code) #响应状态码

print(r.history)#json响应内容

print(r.json()) #[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

python爬虫requests-Python爬虫---requests库快速上手相关推荐

  1. Python学习六大路线,教你快速上手

    最近几年随着互联网的发展学习Python人越来越多,Python的初学者总希望能够得到一份Python学习路线图,小编经过多方面汇总,总结出比较全套Python学习路线,快速上手.对于一个零基础的想学 ...

  2. python金融编程入门_【量化小讲堂- Python、pandas技巧系列】如何快速上手使用Python进行金融数据分析...

    如何快速上手使用Python进行金融数据分析 引言: 本系列帖子"量化小讲堂",通过实际案例教初学者使用python.pandas进行金融数据处理,希望能对大家有帮助. [必读文章 ...

  3. python游戏编程书_Python游戏编程快速上手 第4版 (斯维加特著) 中文pdf扫描版[41MB]...

    Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言. Python游戏编程快速上手 (第4版)通过编写一个个小巧.有趣的游戏来教授Python编程,并且采用 ...

  4. Python Flask Web教程002:Flask 快速上手

    Flask Web教程002:Flask 快速上手 0. 前言 1. Web基础知识 2. 第一个flask web程序 3. 总结 0. 前言 web开发中有一些共同的功能,比如:数据库驱动.网页模 ...

  5. Python工具类之PIL.Image库快速实现多图拼接

    我们在测试中尤其是终端自动化测试中,经常要求截图保存操作自动化测试的步骤,但是一 个case多个图片,查看起来很麻烦,这里提供一个思路,那就是将多个图片拼接起来, 弄成一张图片,可以**合成N*M宫格 ...

  6. python新建文件夹口令_python编程快速上手—口令保管箱

    之前小编为大家整理了如何成为一个优秀的程序员应该具备的品质,接下来为大家展示一个简单有趣的python小项目,从中体会编程的乐趣.小编了解这个小项目之后,很是惊奇,觉得python竟然还可以做这样的事 ...

  7. Eigen矩阵运算库快速上手

    目录 1. 配置 2. 初始化 2.1 Array类 2.2 Vector类 2.3 Matrix类 2.4 Vector赋值 2.5 高级初始化 3. 矩阵计算 3.1 矩阵基本计算 3.2 线性求 ...

  8. element-plus组件库快速上手教程

    前言 一般我们开发单页面应用(关于单页面应用是什么在本专栏的另一篇文章中有介绍)时,特别是针对和我一样打算走后端开发的同学,对于前端只需要有了解的程度就行了,但是平常做项目练手时经常会要自己写前端的东 ...

  9. 密码学C语言函数库——Miracl库快速上手中文指南(VC)

    一.简介 密码学学习.研究人员往往着重于理论研究,难以与实践直接挂钩,今天介绍一下国外著名密码学C语言函数库--Miracl库的使用方法. Miracl库的官方网站是http://www.shamus ...

最新文章

  1. TensorFlow平台搭建
  2. Myeclipse开发内存溢出问题
  3. 数据库性能优化—分库分表
  4. SAP Spartacus ConfigInitializerService里的isStable属性
  5. 如何导入某网站的certificate证书到SAP ABAP系统
  6. CF1088F Ehab and a weird weight formula(树上最优性问题、贪心+倍增)
  7. JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]...
  8. 《jQuery基础》总结
  9. qtablewidget 选中不改变背景_C4D制作不一样的核壳结构
  10. SVN 服务器端的搭建-及多仓库管理-OK
  11. Oracle不完全恢复-主动恢复和incarnation/RMAN-20208/RMAN-06004
  12. ListView,GridView以及ScrollView上拉下拉控件源码以及Demo发布啦
  13. 黑苹果快捷键修改_小米air13.3安装黑苹果教程
  14. 项目的组织结构(职能型、项目型和矩阵型)
  15. 构建统一CIM数字底盘,实现基于BIM的全流程管控
  16. Capstone/CS5216 CS5218设计 DP转HDMI转换方案芯片
  17. 微信支付.商家转账到零钱案例
  18. 购买的Microsoft Office不小心卸载后重新安装方法
  19. android环信删除会话列表,关于会话列表的置顶聊天
  20. CTFHUB技能树题目解析(持续更新)

热门文章

  1. 开发日记-20190802 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 18
  2. MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
  3. k8s object对象(pod controller)介绍
  4. python 数据验证
  5. nodejs 转换long到unsigned long(NXT)
  6. 【mybatis基础】mybatis开发dao两种方法
  7. ExtJS 4.2 第一个程序
  8. Spec Explorer 工具学习
  9. Betriebssystem I 操作系统课件 01. Evolution von Rechnersystemen 计算机操作系统的演变
  10. RAC 实例不能启动 ORA-1589 signalled during ALTER DATABASE OPEN