前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BeautifulSoup库

BeautifulSoup库

原创
作者头像
小小咸鱼YwY
修改2019-07-24 14:53:31
8760
修改2019-07-24 14:53:31
举报
文章被收录于专栏:python-爬虫

一.BeautifulSoup库的下载以及使用

1.下载

pip3 install beautifulsoup4

2.使用from bs4 impott beautifulsoup4

二.BeautifulSoup库解析器

解析器

使用方法

优势

劣势

bs4的HTML解析器

BeautifulSoup(mk,'html.parser')

Python 的内置标准库执行速度适中文档容错能力强

Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差

lxml的HTML解析器

BeautifulSoup(mk,'lxml')

速度快文档容错能力强

需要安装C语言库

lxml的XML解析器

BeautifulSoup(mk,'xml')

速度快唯一支持XML的解析器

需要安装C语言库

html5lib解析器

BeautifulSoup(mk,'html5lib')

最好的容错性以浏览器的方式解析文档生成HTML5格式的文档

速度慢

条件 :

  • bs4的HTML解析器:安装bs4库
  • lxml的HTML解析器:pip3 install lxml
  • lxml的XML解析器:pip3 install lxml
  • html5lib解析器:pip3 install html5lib

三.BeautifulSoup类的5种元素

  • 获取标签方法,解析后的网页.标签的名字,如果同时存在多个标签只取第一个
  • 获取标签的父标签<;tag>;.parent
  • <;tag>;表示标签
  • 当标签为没有属性的时候,我们获得的是个空字典

四.标签树向下遍历

  • .contens:子节点列表,不仅仅包括标签节点,也包括字符串节点例如\n
  • .children:子节点的迭代器类型也包括字符串节点例如\n
  • descendants:子孙节点的迭代类型也包括字符串节点例如\n

五.标签树向上遍历

  • .parent:节点的父亲标签
  • .parents:节点先辈标签的迭代器类型

注意:如果是html的父标签就是他自己,soup本身也是种特殊的标签的他的父标签是空

六.标签树平行遍历

  • .next_sibling:下一个平行标签
  • .previous_sibling:上一个平行标签
  • .next_silbings:迭代器类型,向下所有标签
  • .previous_silbling:迭代器类型,向上所有标签

注意:必须在同一个父节点下才有平行关系,平行遍历获得的对象不一定是标签,也可能是文本,如果上下没来就为空

七.prettify使得解析后页面更加好看

解析后的页面

prettify():会把解析的网页加上\n的文本文档,能使它打印变得更加好看

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.BeautifulSoup库的下载以及使用
    • 1.下载
    • 二.BeautifulSoup库解析器
    • 三.BeautifulSoup类的5种元素
    • 四.标签树向下遍历
    • 五.标签树向上遍历
    • 六.标签树平行遍历
    • 七.prettify使得解析后页面更加好看
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档