1.Requests库入门
1.1Requests库的七个主要方法
requests.request() 构造一个请求,支撑以下个方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post() 获取post请求的方法,对应于HTTP的POST
reqursts.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
reuqests.patch() 向网页提交局部修改请求,对应于HTTP的PATCH
reuqests.delete()向HTML页面提交删除请求,对应于HTTP的DELETE
1.2get方法的详细使用情况
requests.get(url,params=None,**kwargs)
url:网页的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个访问控制参数
1.3Response对象的属性(1)
r.status_code HTTP请求的返回状态,200表示链接成功,404表示失败
r.text HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容的编码方式
r.apparent_encoding 从内容分析的响应内容编码方式(备用编码方式)
r.content HTTP响应内容的二进制形式
1.4Requests库的异常
requests.ConnectionError 网络连接错误异常,如DNS查询失败,拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests。ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常
2.Beautiful Soup库的理解
2.1基本元素
Tag 标签,最基本的信息组织单元,分别用<>和>标明开头和结尾
Name 标签的名字,
...
的名字是‘p’,格式:Attributes 标签的属性,,字典形式组织,格式
NavigableString 标签内非属性字符串,<>...>中字符串,格式:
Comment 标签内字符串的注释部分,一种特殊的Comment类型
2.2标签树的下行遍历
.contents 子节点的列表,将
.childen 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点用于循环遍历
2.3标签树的上行遍历
.parent 节点的父亲标签
.parents 节点先辈标签的迭代类型,用于循环遍历先辈节点
2.4标签树的平行遍历(平行遍历关系发生在同一个父亲点下的各节点间)
.next_sibling 返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.next_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
.previous_sibling 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
3. 信息组织与提取
3.1三种信息标记形式的比较
XML 最早的通用信息标记语言,可扩展性好,但繁琐 Internet上的信息交互与传递
JSON 信息有类型,适合程序处理(js)较XML简洁 移动应用云端的节点的信息通信,无注释
YAML 信息无类型,文本信息比例最高,可读性强 各类系统的配置文件,有注释易读
3.2信息提取的一般方法
方法一:完整解析信息的标记形式,再提取关键信息
优点:信息解析准确
缺点:提取过程繁琐,速度慢
方法二:无视标记形式,直接搜索关键信息
优点:提取过程简介,速度较快
缺点:提取结果准确性与信息内容相关
融合方法
结合形式解析与搜索方法,提取关键信息
3.3扩展方法
<>.find 搜索且只返回一个结果,同.find_all()参数
<>.find_parents() 在先辈节点中搜索,返回列表类型,同.find_all()参数
<>.find_parent() 在先辈节点中返回一个结果,同.find()参数
<>.find_next_sinlings() 在后续平行节点中搜素,返回列表类型,同find_all()参数
<>.find_next_sibling() 在后续平行节点中返回一个结果,同.find()参数
<>.find_previous_siblings() 在前序平行节点中搜索,返回列表类型,同.find_all()参数
<>.find_previous_sibling() 在前序平行节点中返回一个结果,同.find()参数



