Requests库 更新中

1.获取网页内容 --- requests库
《需理解HTTP协议》
>requests库的7个主要方法
 
方法
说明
requests.requests()
构造一个请求,支撑一下个方法的基础方法
requests.get()
获取HTML网页的主要方法,对应与HTTP的GRT
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库的异常
 
异常
说明
requests.ConnectionError
网络连接错误异常,如DNS查询失败,拒绝连接等
requests.HTTPRrror HTTP连接错误异常
requests.URLRrror
URL缺失异常
requests.TooManyRedirecrs
超过最大重定向次数,产生重定向异常
requests.ConnectTimeout
连接远程服务器超时异常
requests.Timeout
请求URL超时,产生超时异常
>requests的get()方法
 
get ()方法的返回值是一个Response对象,Response作为服务器对get()响应的结果,具有自己的属性和方法。
Response对象的主要属性如下:
 
属性
说明
status_code
HTTP请求的返回状态码,200表示链接成功,404表示失败
text
HTTP响应内容的字符串形式,即URL对应页面内容
encoding 
HTTP响应的编码方式
content
HTTP响应内容的二进制形式
headers
返回一个字典,内容是服务器的响应头
url
返回请求的URL
apparent_encoding
从内容中分析出的响应内容编码方式(备选编码方式)
encoding和apparent_encoding的区别
encoding:如果header中不存在charset,则认为编码为ISO-8859-1
apparent_encoding根据网页内容分析出的编码方式
apparen_encoding更为准确
 
>爬取网页的通用代码框架
import requests
 
def getHTMLText(url):
       try:
             r = requests.get(url,timeout=30)
             r = raise_for_status()  #如果状态不是200,引发HTTPError异常
             r.encoding = r.apparent_encoding
             return r.text
       except:
             return '产生异常'
url = "http://www.baidu.com"
print(getHTMLText(url))
 
 
 

猜你喜欢

转载自www.cnblogs.com/1328497946TS/p/11016505.html