Python利用BeautifulSoup解析Html的方法示例


Posted in Python onJuly 30, 2017

介绍

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

本文将给大家详细介绍关于Python利用BeautifulSoup解析Html的方法,下面话不多说了,来一起看看详细的介绍:

1. 安装Beautifulsoup4

pip install beautifulsoup4
pip install lxml
pip install html5lib

lxml 和 html5lib 是解析器

2. html 

<!-- This is the example.html file. -->
 
<html><head><title>The Website Title</title></head>
<body>
<p>Download my <strong>Python</strong> book from <a href="http://inventwithpython.com" rel="external nofollow" >my website</a>.</p>
<p class="slogan">Learn Python the easy way!</p>
<p>By <span id="author">Al Sweigart</span></p>
</body></html>

上面的html保存html文件

3.开始解析

import bs4
 
exampleFile = open('example.html')
exampleSoup = bs4.BeautifulSoup(exampleFile.read(),'html5lib')
elems = exampleSoup.select('#author')
type(elems)
print (elems[0].getText())

结果输出 Al Sweigart

BeautifulSoup 使用select 方法寻找元素,类似jquery的css选择器

  • soup.select(‘div') ———————?所有为<div>的元素
  • soup.select(‘#author') —————?id为author的元素
  • soup.select(‘.notice') ——————class 为notice的元素

参考《Python 编程快速上手—?让繁琐工作自动化》

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Python 相关文章推荐
Django在win10下的安装并创建工程
Nov 20 Python
Python标准库shutil用法实例详解
Aug 13 Python
python用插值法绘制平滑曲线
Feb 19 Python
Python线程之定位与销毁的实现
Feb 17 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
python 3.6.7实现端口扫描器
Sep 04 Python
python如果快速判断数字奇数偶数
Nov 13 Python
在django中自定义字段Field详解
Dec 03 Python
python路径的写法及目录的获取方式
Dec 26 Python
Python list和str互转的实现示例
Nov 16 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
python神经网络Xception模型
May 06 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 #Python
Python 装饰器使用详解
Jul 29 #Python
python实现数据图表
Jul 29 #Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 #Python
使用Kivy将python程序打包为apk文件
Jul 29 #Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 #Python
Python3中使用PyMongo的方法详解
Jul 28 #Python
You might like
php操作SVN版本服务器类代码
2011/11/27 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
js中window.open()的所有参数详细解析
2014/01/09 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
重命名批处理python脚本
2013/04/05 Python
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python入门篇之文件
2014/10/20 Python
python实现简单的计时器功能函数
2015/03/14 Python
python中dir函数用法分析
2015/04/17 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
建议书的格式
2014/05/12 职场文书
跑操口号
2014/06/12 职场文书
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android