栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫的笔记——Requsets库的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫的笔记——Requsets库的使用

import requests
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
r = requests.get("http://www.baidu.com")

Requests库的get()方法:


        r=request.get(url)/构造向服务器请求资源的Request对象,同时返回一个包含服务器资源的Respose对象


        r就是一个Respose对象,它包含了爬虫返回的全部内容, 也包含了我们向服务器请求的Resquset信息

Repose对象的属性

r.status_code
# HTTP请求的返回状态,状态码200连接成功,404表示连接失败或者就是非200就是失败的
# 以下执行的条件就是要是r.status_code=200的基础上才能够进行的

r.text
# HTTP响应内容的 字符串形式,即url对应的页面内容

r.encoding
# 从HTTP header中猜测的响应内容编码方式(并没有进行分析内容,只是一个猜测)

r.apparent_encoding
# 从内容分析出的响应内容编码方式(备选编码方式)

r.content
# HTTP相应内容的二进制形式

r.raise_for_status()
# 如果不是200,产生异常requests.HTTPError
Requests库的异常

requests.ConnectionError
# 网络连接错误异常

requests.HTTPError
# HTTP错误异常

requests.URLRequired
# url缺失异常

requests.TooManyRedirects
# 超过最大重定向次数,产生重定向的异常

requests.ConnectTimeout
# 连接远程服务器超时异常(仅仅指那一个异常)

requests.Timeout
# 请求URL超时,产生超时异常(整个过程的超时异常)

 

# 通用代码框架
def GetHTMLText(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        # 最重要的一步,如果r.status_code!=200,他将先产生一次异常,能够被except进行捕获到
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常!!!"

HTTP超文本传输协议:
是基于“请求与响应”模式的,无状态的应用层协议,采用URL作为定位网络资源的标志
        URL的格式:http://host[:port][path]
        host:合法的Internet主机域名或IP地址
        port:端口号
        path:请求资源的路径

HTTP协议对资源的操作:
        GET:请求获取URL位置的资源
        HEAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
        POST:请求向URL位置的资源后附加新的数据
        PUT:请求向URL位置存储一个资源覆盖原URL位置的资源
        PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容
        DELETE:请求删除URL位置存储的资源

requests库的七种方法: requests.request()

可以说是最重要的方法,它可以用method中的方法来替代后面六种方法

requests.request(method,url,**kwargs)(**kwargs是13个访问控制参数)
method:GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS(使用较少)


# 例:r=requests.request('Get',url,**kwargs)
# **kwargs:控制访问的参数,均为可选项

params:字典或者字节序列,作为参数增加到url中,
# 通过这样一个参数,可以把一些键值对增加到url中使得url再去访问时不止访问的是这个资源,而同时带入了一些参数,服务器可以接受这些参数,并根据这些参数筛选部分资源,返回回来

data:字典、字典序列或文件对象,作为Request的内容

json:JSON格式的数据,作为Request的内容

headers:字典,HTTP定制头的相关域

cookies:字典或者cookieJar,Request中的cookie

auth:元组,支持HTTP认证功能

files:字典类型,传输文件

timeout:设置的超时时间,秒为单位

proxies:字典类型,设定访问代理服务器,可以增加登录认证,可有效防止对爬虫的逆追踪

allow_redirects:True/False,默认为True,重定向开关

stream:True/False,默认为True,获取内容立即下载开关

verify:True/False,默认为True,认证SSL证书的开关

cert:本地SSL证书路径
requests.get()

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

url:拟获取页面的url链接

params:url中的额外参数,字典或者字节流格式,可选

**kwargs:12个控制访问的参数
requests.head()    

requests.head(url,**kwargs)

url:拟获取页面的url链接

**kwargs:13个控制访问的参数
requests.post()

requests.post(url,data=None,json=None,**kwargs)

url:拟获取页面的url链接

data:字典、字典序列或文件对象,作为Request的内容

json:JSON格式的数据,作为Request的内容

**kwargs:11个控制访问的参数
requests.put()

requests.put(url,data=None,**kwargs)

url:拟获取页面的url链接

data:字典、字典序列或文件对象,作为Request的内容

**kwarges:12个控制访问的参数
requests.patch()

requests.patch(url,data=None,**kwargs)

url:拟获取页面的url链接

data:字典、字典序列或文件对象,作为Request的内容

**kwarges:12个控制访问的参数
requests.delete()

requests.delete(url,**kwargs)

url:拟删除页面的url链接

**kwarges:13个控制访问的参数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号