基于BeautifulSoup对HTML文件解析的知识点(遍历、属性、查找)

基于IDLE

遍历
标签树的下行遍历
  • tag.contents:返回子节点的列表,tag的所有儿子节点(仅儿子)存入列表;
  • tag.children:返回tag子节点的迭代类型,循环遍历儿子(仅儿子),不同于contents不是用列表存子节点,用迭代器循环子节点;
    (注意:.contents和.children的子节点包括字符串’\n’)
  • tag.descendants:tag子孙节点的迭代,包含tag所有子孙节点。
    (注意:遍历只能从一个根节点开始,森林没法遍历)

示例HTML:

<div class="nav_cont">
	<ul>
	<li><a href="https://www.qb5.tw" title="全本小说网首页">首页</a></li>
	<li><a href="https://www.qb5.tw/fenlei/1_1/" title="玄幻魔法">玄幻魔法</a></li>
	<li><a href="https://www.qb5.tw/top/monthvisit/" title="热门小说">热门小说</a></li>
	ul>
	<ul>
	<li><a href="https://www.qb5.tw" title="全本小说网登录页">登录</a></li>
	<li><a href="https://www.qb5.tw/fenlei/1_1/" title="变形金刚">变形金刚</a></li>
	<li><a href="https://www.qb5.tw/top/monthvisit/" title="神庙逃亡">神庙逃亡</a></li>
	</ul>
</div>

标签树:在这里插入图片描述1.soup.div.contents
得到div的两个儿子标签<ul>
在这里插入图片描述
2. soup.div.children
得到div的两个儿子标签<ul>
在这里插入图片描述
3. soup.div.descendant
得到div的20个子孙标签
在这里插入图片描述

属性与方法
五种属性
基本元素说明例子
Tag标签,最基本信息组织单位soup.tag获得tag里面的内容
Name标签的名称tag.name#获得tag名,tag.parent.name#获得tag的父亲名字
Attributes标签的属性tag.attrs#获得标签字典类型的属性,tag.attrs[‘class’]#获得属性class关键字的值
NavigableString标签内非属性字符串tag.string #类型是NavigableString
Comment标签内字符串的注释部分tag.string#获得注释内的字符串,注释以<!–开始
查找方法.find_all()

soup.find_all(name, attrs, True/False, string, **kwargs)

  • fand_all返回列表,把查找到的标签放入列表
  • name:标签名字,eg:‘p’,若多个标签用[‘a’,‘p’]列表形式;
  • attrs:标签属性,id=“”,href=“”,但是不能用class = “” ?,可以严格匹配,也可以用正则表达式,id = re.compile(“b”)可以返回id中b开头的所有标签;
  • string:表示<></>中的字符串,严格匹配/正则表达;
  • True/False:默认True,表示从当前开始的所有子孙,false为当前的所有子节点;

【注】:html代码在全民小说网爬取部分,网站访问时允许爬虫,且博文不进行商业行为仅为学习指导记录。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值