python爬虫requestsget_精讲Python中的requests方法
安装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方法相关推荐
- python快速入门精讲_Python快速入门精讲
基础入门篇 第0章从零开始3 0.1克服编程恐惧3 0.2如何写出好程序4 0.3为什么选择Python5 0.4Python的发展和应用6 0.5一些建议8 0.6多平台搭建Python开发环境10 ...
- 【数据分析师-python基础】python基础语法精讲
python基础语法精讲 1 从数字开始 1.1 理解整数.浮点数.复数几种类型对象 1.2 掌握运算及其相关的常用函数 2 变量.表达式和语句 2.1 变量作用及定义的方法 2.2 变量命名原则和习 ...
- python常用函数-python常用函数精讲
原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...
- 视频教程-数据分析快速实践:企业真实案例精讲-Python
数据分析快速实践:企业真实案例精讲 本科:武汉大学 软件工程 博士:美国佐治亚大学 地理信息系统 杨威 ¥69.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订 ...
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...
- Python 爬虫实战:分析豆瓣中最新电影的影评
Python 爬虫实战:分析豆瓣中最新电影的影评 接触python时间不久,做些小项目来练练手.前几天看了<战狼2>,发现它在最新上映的电影里面是排行第一的,如下图所示.准备把豆瓣上对它的 ...
- php运行python爬虫_群晖系统中运行python爬虫程序
重要:本文最后更新于2021-01-28 17:02:43,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 准备入手一台NAS,事先的学习是必须的,今天在VM虚拟机中安装好NAS后, ...
- python爬虫是什么意思?,Python爬虫是什么东西
Python爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 另外一些不常使用的名字还有蚂 ...
- 如何自学python爬虫-怎样入门学习Python爬虫?
怎样入门学习Python爬虫? 1.掌握Python编程能基础 想要学习爬虫,首先要充分掌握Python编程技术相关的基础知识.爬虫其实就是遵循一定的规则获取数据的过程,所以在学习Python知识的过 ...
最新文章
- 802.1x认证协议的应用
- Factory Method工厂方法模式
- VTK修炼之道20:图像基本操作_图像类型转换
- makefile格式-实践一
- linux 低功耗运行,关于Linux的快速启动(fastboot)和低功耗(low power)的学习记录...
- python中模块导入问题(已解决)
- 3层b+树索引访问磁盘次数_深入理解MySQL索引底层实现原理丨技术干货
- 解读沃指数APP排行榜的三大亮点:垂直领域凶猛
- Facebook账户 “ 解封、防封、养号 ” 知识要点,已收藏!
- where 空集_实验七SQL的空值和空集处理.doc
- Node.js实战(Node.js in Action)书中的代码实现
- Leetcode str
- Dynamic , Static or Seperate Schema Design (Convert No-SQL to ORDBMS)
- java qlv转mp4 代码_qlv视频格式转换器
- 水的智慧:孔子、老子、禅语 人生处世当如水,善待一切
- 怎么用matlab求特征向量,MATLAB用eig()函数求【特征值】【特征向量】【归一化
- SAP 中Table的使用(一、显示数据)
- 客户关系管理项目——用户登录模块设计
- THE FOOL 【找规律】
- 企业如何实现IoT物联网远程控制
热门文章
- python代码统计字符串中大写字符、小写字符、特殊字符以及数值字符出现的次数
- TED+如何让压力成为朋友+如何面对压力决定你的未来
- AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
- 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild
- 行人检测--What Can Help Pedestrian Detection?
- 语义分割--Learning Object Interactions and Descriptions for Semantic Image Segmentation
- 语义分割--Attention to Scale: Scale-aware Semantic Image Segmentation
- 注释工具_好用的位点分级注释工具,VarSome插件
- boot sprint 项目结构_京淘项目03 08.28
- centos8开启网络