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),它返回一个列表类型,存储查找的结 ...
随机推荐
- myCloudData SDK
http://www.tmssoftware.com/site/myclouddata.asp http://www.tmssoftware.com/site/myclouddatasdk.asp
- Delphi6/7 中XML 文档的应用
XML文档是新一代的Web数据格式.它可以用树的形式储存一切数据.下面介绍一下TXMLDocument控件的一些用法:已定义:XMLDoc: TXMLDocument;EncoderMIME: TId ...
- windows-qt 使用mingw编译c++boost并使用
一.boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化.不过对比STL,boost更加实用.STL集中在算法部分,而boost包含了不少工具 ...
- Qt编程规范
一.概述 良好的编程规范可以大幅提高一个程序的可读性.可理解性和可维护性. 本规范参考Effective C++中文版.Google C++编码规范及Qt编码风格. 二.头文件 1) #de ...
- FMX有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法(firemonkey messaging)
看FMX代码,发现有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法. 早前,看过文章说TMessageManage ...
- ajax,文件上传,分页器
一.Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输 ...
- Spark之权威指南经典案例
hadoop权威指南上有一个求历史最高温度的经典案例,源数据如下: -- sample.txt0067011990999991950051507004+68750+023550FM-12+038299 ...
- epoll模型的探索与实践
我们知道nginx的效率非常高,能处理上万级的并发,其之所以高效离不开epoll的支持, epoll是什么呢?,epoll是IO模型中的一种,属于多路复用IO模型; 到这里你应该想到了,select, ...
- XGBoost类库使用小结
在XGBoost算法原理小结中,我们讨论了XGBoost的算法原理,这一片我们讨论如何使用XGBoost的Python类库,以及一些重要参数的意义和调参思路. 本文主要参考了XGBoost的Pytho ...
- 移动IM开发指南1:如何进行技术选型
<移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...