文档章节

Requests库入门

jeffky
 jeffky
发布于 2017/08/26 10:24
字数 815
阅读 3
收藏 0
点赞 0
评论 0

Requests库的安装

win平台:"以管理员身份运行”cmd,执行pip install requests

Requests库的安装小测试

>>> import requests
>>> r=requests.get("http://www.baidu.com")
>>> print(r.status_code)
200

-------------------------------------------------------------------------------------------------------------

Requests库的7个主要方法

方法 说明
requests.request() 构造一个请求,支撑以下各方法的基础方法
requests.get() 获取HTML页面的主要方法,对应于HTTP的GET
requests.head() 获取HTML页面头信息的方法,对应于HTTP的HEAD
requests.post() 向HTML页面提交post请求的方法,对应于HTTP的POST
requests.put() 向HTML页面提交put请求方法,对应于HTTP的PUT
requests.patch() 向HTML页面提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提出删除请求,对应于HTTP的DELETE

-------------------------------------------------------------------------------------------------------------

Requests库的get()方法

requests.get

r = requests.get(url)   --->构造一个向服务器请求资源的Request对象
返回一个包含服务器资源的Response对象

requests.get(url,params=None,**kwarge)

  1. url:拟获得页面的url链接
  2. params:url中的额外参数,字典或字节流格式,可选
  3. **kwargs:12个控制访问的参数

Resquests库的两个重要对象

ResponseRequest

Response对象包含爬虫返回的内容

------------------------------------------------------------------------------------------------------------

Response对象

Response对象包含服务器返回的所有信息,也包含请求的Request信息

Response对象的属性

属性 说明
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出响应内容涵盖编码方式(备选编码方式)

r.content

HTTP响应内容的二进制形式

 

------------------------------------------------------------------------------------------------------------

Requests库的异常

Exception  ---->网络连接有风险,异常处理很重要

 

理解Requests库的异常
异常 说明
requests.ConnectionError 网络连接错误异常,如DMS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常

------------------------------------------------------------------------------------------------------------

爬取网页的通用代码框架

import requests
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常"


if _name_ == "_main_":
    url = "http://www.baidu.com"
    print(getHTMLText(url))

------------------------------------------------------------------------------------------------------------

HTTP协议

(Hypertext Transfer Protocol,超文本传输协议)

HTTP是一个基于“请求与响应”模式的、无状态的应用层协议

HTTP协议采用URl作为定位网络资源的标识,URL格式如下

http://host[:port][path]
  • host:合法的Internet主机域名或IP地址
  • port:端口号,缺省端口为80
  • path:请求资源的路径

URL:是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源

HTTP协议对资源的操作
方法 说明
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT

请求向URL位置存储一个资源,覆盖原URL位置的资源

PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置存储的资源

 

© 著作权归作者所有

共有 人打赏支持
jeffky
粉丝 0
博文 8
码字总数 11214
作品 0
海淀
requests+lxml爬虫利器

requests 1.requests是一个强大的Python第三方Http库,基于httplib和urllib3,接口清晰易用,功能十分强大。 ###1. 安装 pip install requests或者easy_install requests ###2. 基本使用 在i...

曾劲松 ⋅ 2016/10/04 ⋅ 0

Python爬虫:爬取人人都是产品经理的数据

爬取内容: 人人都是产品经理首页(www.woshipm.com)左侧【最新文章】下如图样式的文章标题、浏览量和缩略图。 思路: 1. 用BeautifulSoup解析网页 变量名 = BeautifulSoup(网页信息,'lxml'...

bestdwd ⋅ 2017/05/22 ⋅ 0

Python 爬虫实战(一):使用 requests 和 BeautifulSoup

Python 爬虫实战(一):使用 requests 和 BeautifulSoup 吴小龙同學2017-12-107 阅读 Python Python 基础 我之前写的《 Python 3 极简教程.pdf 》,适合有点编程基础的快速入门,通过该系列...

吴小龙同學 ⋅ 2017/12/10 ⋅ 0

Python爬虫入门 | 1 Python环境的安装

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内...

DC学院 ⋅ 2017/12/14 ⋅ 0

Python网络爬虫基础及Requests库入门

Robots协议 网络爬虫的问题 在讲python网络爬虫之前,先来看看网络爬虫的一些问题以及robots协议。首先python爬虫功能主要使用的库有Requests库和Scrapy库。他们的区别如下: 正常情况下Web...

zengxiantao1994 ⋅ 2017/10/13 ⋅ 0

requests库的入门

requests库的入门 1.发送请求 导入Requests >>> import requests1 HTTP的请求类型: 1.GET:它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或...

木木成洋 ⋅ 2017/11/04 ⋅ 0

Mac下python2与python3共存问题

python从入门到放弃; mac os系统里面自带了python2,当我们需要学习python3的时候就要自己安装python3,就会出现python2与python3共存。新手不懂就会出现一系列的问题。 比如安装库的时候就...

服说八道 ⋅ 01/05 ⋅ 0

Python 安全类目推荐 (持续更新)

推荐学习书目 › Learn Python the Hard Way › Python 学习手册 › Python Cookbook › Python 基础教程 Python Sites › PyPI - Python Package Index › http://www.simple-is-better.co......

广岛秋泽 ⋅ 2015/11/27 ⋅ 0

实战(二)轻松使用requests库和beautifulsoup爬链接

前言 实战(一)之使用自带urllib和re正则表达式获取电影详情页链接 其实大多情况下,python自带的urllib和re正则表达式已经可以满足我们的日常需求了,但是,聪明的世人怎么会满足于此呢,只...

鱼头豆腐文 ⋅ 2017/12/03 ⋅ 0

实战(一)之使用自带urllib和re正则表达式获取电影详情页链接

一、关于urllib库 网上urllib库的教程文章非常多而且详细具体,我就不过多叙述和重复了,个人更加倾向于将精力放在实战上,而不是反反复复拷贝教程(其实是因为我懒),来几篇干货参考。 py...

鱼头豆腐文 ⋅ 2017/12/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部