安装requests

如果安装了Anaconda,requests就已经可用了。否则,需要在命令行下通过pip安装:$ pip install requests

如果遇到Permission denied安装失败,请加上sudo重试。

使用requests

要通过GET访问一个页面,只需要几行代码:>>> import requests

>>> r = requests.get('https://www.douban.com/') # 豆瓣首页

>>> r.status_code

200

>>> r.text

r.text

'

...'

requests的方便之处还在于,对于特定类型的响应,例如JSON,可以直接获取:

>>> r = requests.get('

20woeid%20%3D%202151330&format=json')

>>> r.json()

{'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', ...

需要传入HTTP Header时,我们传入一个dict作为headers参数:>>> r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS

11_0 like

Mac OS X) AppleWebKit'})

>>> r.text

'

豆瓣(手机版)...'

要发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据:>>> r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password':

'123456'})

requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数:

params = {'key': 'value'}r = requests.post(url, json=params) # 内部自动序列化为JSON

类似的,上传文件需要更复杂的编码格式,但是requests把它简化成files参数:>>> upload_files = {'file': open('report.xls', 'rb')}

>>> r = requests.post(url, files=upload_files)

在读取文件时,注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

把post()方法替换为put(),delete()等,就可以以PUT或DELETE方式请求资源。

除了能轻松获取响应内容外,requests对获取HTTP响应的其他信息也非常简单。例如,获取响应头:>>> r.headers

{Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}

>>> r.headers['Content-Type']

'text/html; charset=utf-8'

requests对Cookie做了特殊处理,使得我们不必解析Cookie就可以轻松获取指定的Cookie:>>> r.cookies['ts']'example_cookie_12345'

要在请求中传入Cookie,只需准备一个dict传入cookies参数:>>> cs = {'token': '12345', 'status': 'working'}

>>> r = requests.get(url, cookies=cs)

最后,要指定超时,传入以秒为单位的timeout参数:>>> r = requests.get(url, timeout=2.5) # 2.5秒后超时

python爬虫requestsget_精讲Python中的requests方法相关推荐

  1. python快速入门精讲_Python快速入门精讲

    基础入门篇 第0章从零开始3 0.1克服编程恐惧3 0.2如何写出好程序4 0.3为什么选择Python5 0.4Python的发展和应用6 0.5一些建议8 0.6多平台搭建Python开发环境10 ...

  2. 【数据分析师-python基础】python基础语法精讲

    python基础语法精讲 1 从数字开始 1.1 理解整数.浮点数.复数几种类型对象 1.2 掌握运算及其相关的常用函数 2 变量.表达式和语句 2.1 变量作用及定义的方法 2.2 变量命名原则和习 ...

  3. python常用函数-python常用函数精讲

    原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...

  4. 视频教程-数据分析快速实践:企业真实案例精讲-Python

    数据分析快速实践:企业真实案例精讲 本科:武汉大学 软件工程 博士:美国佐治亚大学 地理信息系统 杨威 ¥69.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订 ...

  5. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  6. Python 爬虫实战:分析豆瓣中最新电影的影评

    Python 爬虫实战:分析豆瓣中最新电影的影评 接触python时间不久,做些小项目来练练手.前几天看了<战狼2>,发现它在最新上映的电影里面是排行第一的,如下图所示.准备把豆瓣上对它的 ...

  7. php运行python爬虫_群晖系统中运行python爬虫程序

    重要:本文最后更新于2021-01-28 17:02:43,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 准备入手一台NAS,事先的学习是必须的,今天在VM虚拟机中安装好NAS后, ...

  8. python爬虫是什么意思?,Python爬虫是什么东西

    Python爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 另外一些不常使用的名字还有蚂 ...

  9. 如何自学python爬虫-怎样入门学习Python爬虫?

    怎样入门学习Python爬虫? 1.掌握Python编程能基础 想要学习爬虫,首先要充分掌握Python编程技术相关的基础知识.爬虫其实就是遵循一定的规则获取数据的过程,所以在学习Python知识的过 ...

最新文章

  1. 802.1x认证协议的应用
  2. Factory Method工厂方法模式
  3. VTK修炼之道20:图像基本操作_图像类型转换
  4. makefile格式-实践一
  5. linux 低功耗运行,关于Linux的快速启动(fastboot)和低功耗(low power)的学习记录...
  6. python中模块导入问题(已解决)
  7. 3层b+树索引访问磁盘次数_深入理解MySQL索引底层实现原理丨技术干货
  8. 解读沃指数APP排行榜的三大亮点:垂直领域凶猛
  9. Facebook账户 “ 解封、防封、养号 ” 知识要点,已收藏!
  10. where 空集_实验七SQL的空值和空集处理.doc
  11. Node.js实战(Node.js in Action)书中的代码实现
  12. Leetcode str
  13. Dynamic , Static or Seperate Schema Design (Convert No-SQL to ORDBMS)
  14. java qlv转mp4 代码_qlv视频格式转换器
  15. 水的智慧:孔子、老子、禅语 人生处世当如水,善待一切
  16. 怎么用matlab求特征向量,MATLAB用eig()函数求【特征值】【特征向量】【归一化
  17. SAP 中Table的使用(一、显示数据)
  18. 客户关系管理项目——用户登录模块设计
  19. THE FOOL 【找规律】
  20. 企业如何实现IoT物联网远程控制

热门文章

  1. python代码统计字符串中大写字符、小写字符、特殊字符以及数值字符出现的次数
  2. TED+如何让压力成为朋友+如何面对压力决定你的未来
  3. AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
  4. 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild
  5. 行人检测--What Can Help Pedestrian Detection?
  6. 语义分割--Learning Object Interactions and Descriptions for Semantic Image Segmentation
  7. 语义分割--Attention to Scale: Scale-aware Semantic Image Segmentation
  8. 注释工具_好用的位点分级注释工具,VarSome插件
  9. boot sprint 项目结构_京淘项目03 08.28
  10. centos8开启网络