python爬虫02-requests库使用01

目录

1、requests库简介

2、requests库-安装

3、requests库-使用

3.1 导入模块

3.2 发送请求

3.3 requests库常用方法

3.4 访问控制参数kwargs

 4、请求返回对象 Response

5、requests访问时的可能异常

1、requests库简介

  • requests是一个http的第三方请求库,发送http请求,并获取响应结果;

2、requests库-安装

pip install requests
#使用清华园镜像安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

3、requests库-使用

3.1 导入模块

import requests

3.2 发送请求
import requests  # 安装好requests后,导入模块
url = 'https://www.baidu.com'
headers = {'content': 'text/html;charset=utf-8'}
resp = requests.get(url, headers)
print(resp)  #   代表OK
resp.encoding = 'utf-8' # 定义响应对象的编码
print(resp.text)# 打印网页数据
resp.close()  # 爬完数据,请务必要关闭
3.3 requests库常用方法
方法 作用
requests.request(method,url,**kwargs)

创建和发送一个请求,通用方案

requests.get() 发送get请求,对应http的get方法
requests.post() 发送post请求,对应http的post方法
requests.head()         获取网页的头信息,对应http的HEAD方法
3.4 访问控制参数kwargs

resp = requests.request('get',url, **kwargs)

kwargs参数 作用
params 字典类型,作为参数增加到url ; get方法参数传递
data

字典 / 字节序列 / 文件对象,作为Requests对象的内容;

post方法参数传递;

json

json格式的数据,作为Requests的内容;

前后端分离以json参数上传数据;

headers                 字典类型,HTTP定制头,例如设置User-Agent;
cookies         字典或者CookieJar,Request中的cookie
auth 元组,支持HTTP认证功能;
files 传输文件,字典类型; key:参数名,value:文件对象;
timeout 设定超时事件,单位为秒;
proxies 字典类型,设定访问代理服务器;
allow_redirects 是否允许重定向,默认:True;
stream

是否以字节流形式获取内容并下载;

下载文件时候使用;

verify 是否验证SSL证书,默认为True;
cert 本地SSL证书路径;

 4、请求返回对象 Response

resp = requests.request('get',url, **kwargs);

 resp:响应对象,一个包含服务器资源的响应对象;

属性 作用
resp.request 获取Http请求对象  ;返回:
resp.status_code http请求返回状态码 ; 200表示成功;
resp.text http响应的字符串形式;
resp.content http响应的二进制形式;例如:图片,音频,视频等;
resp.encoding 从http的header中响应编码方法;
resp.apparent_encoding 从内容中分析响应内容编码方式;(备选编码方式)
方法 作用
resp.raise_for_status() 该方法内部判断resp.status_code == 200,不等则抛异常
resp.json()

得到对应的json格式数据; 

补充:Python有json模块,可以实现字符串和json的转换;

注意:★★★★★

  • encoding属性: 如果header中不存在charset,则认为是ISO-8859-1编码;
  • text属性:根据encoding属性的编码方式显示网页内容;
  • 当编码方式不一致,可能会出现乱码;
  • apparent_encoding属性:是根据网页内容分析出的编码方式;看做encoding属性的备选;

5、requests访问时的可能异常

异常 说明
requests.ConnectionError 网络连接异常,如:拒绝连接,DNS查询失败等
requests.HTTPError         http错误异常
requests.URLRequired URL缺失异常
requests.ToolManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常

response对象提供了一个raise_for_status()方法,该方法内部对status_code进行判断,如果状态码不是200 ,则抛出HttpError异常;

你可能感兴趣的:(python-爬虫,python,开发语言)