Requests库 更新中

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-13 16:43   2717   0

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.HTTPRrrorHTTP连接错误异常
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))

  

转载于:https://www.cnblogs.com/1328497946TS/p/11016505.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP