requests库入门

安装requests库:

按下win + r,输入cmd, 右键单击, 选择以管理员身份运行

在cmd窗口中输入, "pip install requests"(先要安装python, 如果pip的版本不是最新,则需要先按照命令行中给出的提示进行更新)

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

requests的简单示例:

在python的ide中输入:

import requests #加载requests库
r = requests.get("http://www.baidu.com") #以百度的首页为例
r.encoding = 'utf-8' #更改编码方式为utf-8
r.text #打印该页面上的内容(HTML代码)

则输出了百度首页的HTML源代码'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=alway.......'

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()方法详解

 获得一个网页最简单的一行代码:

r = requests.get(url) #这里的url是“统一资源占位符”(Uniform Resource Locators)的意思

(url的最直白的解释:“Web地址!”

举个例子:http://www.baidu.com/就是一个url,其中包含了三个部分:

获取资源的协议,网站名,从网站的根文件夹到资源的绝对路径)

 

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

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

**kwargs:12个控制访问的参数

注意到上面的代码生成了两个对象: Request和Response对象(注意是区分大小写的!)

Response对象:

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

Response对象最常用的属性:

r.status_code: HTTP请求的返回状态,200表示连接成功, 其他表示失败

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

r.encoding: 从HTTP header中猜测的响应内容编码方式

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

r.content: HTTP响应内容的二进制形式

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

 理解Request库的异常

requests.ConnectionError: 网络连接错误异常, 如DNS查询失败, 拒绝连接等

requests.HTTPError: HTTP错误异常

requests.URLRequired: URL缺失异常

requests.TooManyRedirects: URL缺失异常

requests.ConnectTimeout: 连接远程服务器超时异常

requests.Timeout: 请求URL超时,产生超时异常

爬取网页的通用代码框架

 1 import requests
 2 
 3 def getHTMLText(url):
 4     try:
 5         r = requests.get(url, timeout=30)
 6         r.raise_for_status() #如果状态不是200,引发HTTPError异常
 7         r.encoding = r.apparent_encoding
 8         return r.text
 9     except:
10         return "产生异常"

HTTP协议及Request库方法

HTTP协议对资源的操作

GET: 请求获取URL位置的资源

HEAD: 请求获取URL位置资源的响应信息报告, 即获得该资源的头部信息

POST: 请求向URL位置的资源后附加新的数据

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

PATCH: 请求局部更新URL位置的资源, 即改变该处资源的部分内容

DELETE: 请求删除URL位置存储的资源

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄