第一周-单元1-Requests库入门-2-Requests库的get()方法

2.Requests库的get()方法

get()方法的完整格式:

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

获取网页资源的最简单代码:r = requests.get(url)通过get方法构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象,用变量r表示,如下图所示。


2.1 Requests库的Response对象

Response对象——重中之重,包含爬虫返回的全部内容

例:

import requests
r = requests.get("http://www.baidu.com")
print(r.status_code)            #查看状态码,返回值是200则访问成功
type(r)   #检测r的类型
r.headers   #返回页面的头部信息

Response对象包含服务器返回的所有信息,同时也含有我们向服务器请求的Request信息。

 Response对象的属性

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

2.2 使用get()方法的基本流程:

1)用r.status_code检查返回的response对象的状态。

2)如果是200,则用r.text、r.encoding、r.apparent_encoding、r.content进一步解析资源。如果不是200,则说明产生此次访问异常。


2.3 理解Response的编码

编码的意义:使人类可以用有效的解析方式读取网络上的资源

r.encoding和r.apparent_encoding的区别:

r.encoding从HTTP的header中的charset字段获得编码方式,但并不是所有的服务器都对其编码方式有要求,即header中有可能不存在charset。所以当header中不存在charset时,则认为编码方式为ISO-8859-1。

r.apparent_encoding从网页内容而不是头部获取编码方式,原则上更准确。

posted @ 2022-04-26 20:52  CharlesZ  阅读(329)  评论(0编辑  收藏  举报