爬虫之BeautifuulSoup库

1.其基本使用:

BeautifulSoup库是灵活又方便的网页解析库,处理高效,支持多种解析器。利用它不用编写正则表达式即可方便地实现网页信息的提取。
在这里插入图片描述当然这里的demo要提前获取
import requests
r=requests.get(“连接”)
r.text
demo=r.text
解析库
解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup, “html.parser”) Python的内置标准库、执行速度适中 、文档容错能力强 Python 2.7.3 or 3.2.2)前的版本中文容错能力差
lxml HTML 解析器 BeautifulSoup(markup, “lxml”) 速度快、文档容错能力强 需要安装C语言库
lxml XML 解析器 BeautifulSoup(markup, “xml”) 速度快、唯一支持XML的解析器 需要安装C语言库
html5lib BeautifulSoup(markup, “html5lib”) 最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 速度慢、不依赖外部扩展

2.Beautiful Soup 类的基本元素:

1.Tag :用<>和</>标明开头和结尾
2.Name:

,

中p为名字,格式.name
3.Attributes:标签属性,格式:.attrs
4.NavigableString:标签内非属性字符串,格式:.string
5.Comment: 标签内字符串的注释部分

1.标签树的下行遍历

1…contents :子节点的列表,讲所有儿子存入列表
2…clidren:子节点的迭代类型,与contents类似,循环遍历儿子结点
3…descendants: 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历。
在这里插入图片描述#遍历儿子节点

for child in soup.body.children
    print(child)

2.标签树的上行遍历

1…parent:节点的父亲标签
2…parents:节点先辈标签的迭代类型,用于循环遍历先辈节点
#遍历父亲节点

for parent in soup.a.parents:
	if parent is None:
		print(parent)
	else:
		print(parent.name)

3.标签树的平行遍历

1…next_sibling:返回安照HTML文本顺序的下一个平行节点标签
2…previous_sibling:返回安照HTML文本顺序的上一个平行节点标签
3…next_siblings:迭代类型,返回安照HTML文本顺序的后续所有平行节点标签
4…previous_sibling:迭代类型,返回安照HTML文本顺序的前续所有平行节点标签
#遍历后续节点

for sibling in soup.a.next_siblings:
	print(sibling)

#遍历后续节点

for sibling in soup.a.previous_siblings:
	print(sibling)

总结遍历所有情况:
在这里插入图片描述

3 .基于bs4库的HTML格式输出

1.bs4库的prettify()方法

print(soup.a.prettify())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值