BeautifulSoup库

一.BeautifulSoup库的下载以及使用

1.下载

pip3 install beautifulsoup4

2.使用

improt bs4

二.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 标签 分别用<>与</>来表示开头和结尾
name 标签的名字 用法:<tag>.name输出为字符串的形式
attributes 标签里的属性 用法:<tag>.attrs输出为字典的形式
navigablestring 标签里的内容 用法:<tag>.string可以跨域多个标签层次
comment 标签里面的注释 一种特殊的comment类型
  • 获取标签方法,解析后的网页.标签的名字,如果同时存在多个标签只取第一个
  • 获取标签的父标签<tag>.parent
  • <tag>表示标签
  • 当标签为没有属性的时候,我们获得的是个空字典

四.标签树向下遍历

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

五.标签树向上遍历

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

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

六.标签树平行遍历

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

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

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

解析后的页面

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

BeautifulSoup库整理的更多相关文章

  1. python 常用库整理

    python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...

  2. Python常用库整理

    Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...

  3. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  4. BeautifulSoup库children(),descendants()方法的使用

    BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...

  5. 网络爬虫BeautifulSoup库的使用

    使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...

  6. BeautifulSoup库的使用

    1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...

  7. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化

    实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...

  8. python下载安装BeautifulSoup库

    python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...

  9. 基于BeautifulSoup库的HTML内容的查找

    一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...

随机推荐

  1. MySQL操作详解

    创建并使用数据库 查看服务器上的数据库:SHOW DATABASES; 创建数据库:CREATE DATABASE <数据库名>; 指明使用何数据库:USE <数据库名> 创建 ...

  2. C++Builder 中如何修改服务描述,使用ChangeServiceConfig2(SERVICE_CONFIG_DESCRIPTION)

    http://blog.csdn.net/jpexe/article/details/4296955 // ---------------------------------------------- ...

  3. DHTMLEdit控件的安装

    xp中自带了DHTMLEdit.ocx, 所以只需安装即可 但是可视化设计面板中没有这个控件,需要我们手动安装一下 具体方式: [import AcitveX control  在控件板上的安装]一. ...

  4. WCF研究-前篇

    前篇 1.从SOA说起 2.什么是WCF 3.WCF通信模型 4.Endpoint与ABC以及元数据    1.SOA (Service Oriented  Architecture) Ø 一种组件架 ...

  5. Qt4.8.6详细安装步骤(使用了i686-4.8.2-release-posix-dwarf-rt_v3-rev3,手动设置gcc和gdb)非常清楚 good

    摘要 在网上查看了很多篇关于Qt 4的安装方法,都是以前很久的帖子,所以就想按自己的方式重新总结一下,希望可以帮助到大家. Qt5的安装比较简单只需要下载一个文件qt-opensource-windo ...

  6. c# log4net 配置使用

    新增配置文件log4net.config,内容如下 <?xml version="1.0" encoding="utf-8" ?> <conf ...

  7. QT信号槽的六个优点(虽然直接调用函数也可解决问题,但要在具体的函数中传递指针,多对一和解除关系也够麻烦的)

    信号槽是Qt中特有的概念.它使得程序员将不同的object绑定起来,而object对象间并不需要对相互了解. Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private ...

  8. arcgis api for js 4.X 出现跨域问题

    arcgis api for js 4.X 出现跨域问题 XMLHttpRequest cannot load http://localhost/4.3/4.3/esri/workers/mutabl ...

  9. ansible(二)

    一.软件相关模块 1.yum(下载包) 正常操作 yum 与rpm的区别 yum可以解决依赖关系rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖 yum源 ...

  10. Kafka笔记5

    Kafka使用zookeeper来维护集群成员的信息.每个broker都有一个唯一标识符,这个标识符可以在配置文件指定,也可以自动生成. 在broker停机,出现网络分区或者长时间垃圾回收停顿时,br ...