2021-07-31网络爬虫之爬取学习笔记

本文介绍了BeautifulSoup库在HTML解析中的应用,包括其基本元素、解析器的选择以及遍历和查找方法。通过实例展示了如何使用不同的解析器,如html.parser、lxml和html5lib。同时,解释了标签树的下行、上行和平行遍历方式,并阐述了信息提取的关键技术和HTML内容的格式输出。此外,还对比了XML、JSON和YAML三种信息标记形式的特点。
摘要由CSDN通过智能技术生成

Beautiful soup使用模板:

from bs4 import BeautifulSoup
soup=BeautifulSoup(<p>data</p>,"html.parser")
soup=BeautifulSoup(open(“D://demo.html”),"html.parser")

Beautiful Soup库的基本元素

解析html和xml文件的功能库
每对<>是一个标签,存在上下游关系,组成一棵标签树
Beautiful Soup库是解析、遍历、维护“标签树”的功能库

bs4的HTML解析器BeautifulSoup(mk,’html.parser,)安装bs4库
lxml的HTML解析器BeautifulSoup(mk,’lxml’)pip install lxml
lxml的XML解析器BeautifulSoup(mk,’xml’)pip install lxml
html5lib的解析器BeautifulSoup(mk,’html5lib’)pip inatall html5lib

Beautiful Soup五种基本元素
Tag 标签,最基本的信息组织单元,<>开始,</>结束
Name标签的名字,ex:<>…</>的<>和</>为

,则名字为‘p’,格式:.name
Attributes:标签的 属性,字典形式组织,格式:.attrs
NavigableString标签内非属性字符串,<>…</>中的字符串,格式:.string
Comment标签内字符串的注释部分,一种特殊的Comment类型
当有多个相同的tag标签时,使用soup.tag,只能返回其中第一个
NavigableString是可以跨越多个标签层次的

基于bs4库的HTML内容遍历方法

标签树的下行遍历
.contents 返回列表
.children 遍历儿子结点,返回迭代类型
.descendants 遍历子孙结点,返回迭代类型
标签树的上行遍历
.parent 打印父辈
.parents 打印先辈
标签树的平行遍历 必须发生在同一个结点之下,获得的下一个结点不一定是标签类型
.next_sibling
.previous_sibling
.next_siblings 返回迭代类型
.previous_siblings 返回迭代类型
基于bs4库的HTML格式输出:prettify可以让html文本的标签以及内容分行显示

信息标记的三种形式

XML JSON YAML
XML:尖括号标签表达信息 扩展性好,繁琐 Internet的信息交互与传递
在这里插入图片描述

JSON:有类型键值对 适合程序处理,简洁 移动应用云端和节点的信息通信,无注释
“key”:”value”
“key”:[“value1”,”value2”]
“key”:{“subkey”:”subvalue”}
在这里插入图片描述

YMAL:无类型键值对 文本信息,可读性好 各类系统的配置文件,有注释易读
缩进—所属关系 -:表示并列关系 |:整块数据 #:注释
在这里插入图片描述

 信息提取的一般方法
标记+信息
结合形式解析与搜索的方法,提取关键信息
 基于bs4库的HTML内容查找方法
<>.find_all(name,attrs,recursive,string,**kwargs)
soup(…)<=>soup.find_all(…)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silly and happy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值