BeautifulSoup库整理
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库整理的更多相关文章
- python 常用库整理
python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...
- Python常用库整理
Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...
- Python爬虫小白入门(三)BeautifulSoup库
# 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...
- BeautifulSoup库children(),descendants()方法的使用
BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...
- 网络爬虫BeautifulSoup库的使用
使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...
- BeautifulSoup库的使用
1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...
- python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...
- python下载安装BeautifulSoup库
python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...
- 基于BeautifulSoup库的HTML内容的查找
一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...
随机推荐
- MySQL操作详解
创建并使用数据库 查看服务器上的数据库:SHOW DATABASES; 创建数据库:CREATE DATABASE <数据库名>; 指明使用何数据库:USE <数据库名> 创建 ...
- C++Builder 中如何修改服务描述,使用ChangeServiceConfig2(SERVICE_CONFIG_DESCRIPTION)
http://blog.csdn.net/jpexe/article/details/4296955 // ---------------------------------------------- ...
- DHTMLEdit控件的安装
xp中自带了DHTMLEdit.ocx, 所以只需安装即可 但是可视化设计面板中没有这个控件,需要我们手动安装一下 具体方式: [import AcitveX control 在控件板上的安装]一. ...
- WCF研究-前篇
前篇 1.从SOA说起 2.什么是WCF 3.WCF通信模型 4.Endpoint与ABC以及元数据 1.SOA (Service Oriented Architecture) Ø 一种组件架 ...
- Qt4.8.6详细安装步骤(使用了i686-4.8.2-release-posix-dwarf-rt_v3-rev3,手动设置gcc和gdb)非常清楚 good
摘要 在网上查看了很多篇关于Qt 4的安装方法,都是以前很久的帖子,所以就想按自己的方式重新总结一下,希望可以帮助到大家. Qt5的安装比较简单只需要下载一个文件qt-opensource-windo ...
- c# log4net 配置使用
新增配置文件log4net.config,内容如下 <?xml version="1.0" encoding="utf-8" ?> <conf ...
- QT信号槽的六个优点(虽然直接调用函数也可解决问题,但要在具体的函数中传递指针,多对一和解除关系也够麻烦的)
信号槽是Qt中特有的概念.它使得程序员将不同的object绑定起来,而object对象间并不需要对相互了解. Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private ...
- arcgis api for js 4.X 出现跨域问题
arcgis api for js 4.X 出现跨域问题 XMLHttpRequest cannot load http://localhost/4.3/4.3/esri/workers/mutabl ...
- ansible(二)
一.软件相关模块 1.yum(下载包) 正常操作 yum 与rpm的区别 yum可以解决依赖关系rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖 yum源 ...
- Kafka笔记5
Kafka使用zookeeper来维护集群成员的信息.每个broker都有一个唯一标识符,这个标识符可以在配置文件指定,也可以自动生成. 在broker停机,出现网络分区或者长时间垃圾回收停顿时,br ...