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 相关文章推荐
Linux中Python 环境软件包安装步骤
Mar 31 Python
python实现发送邮件功能
Jul 22 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
python requests.post带head和body的实例
Jan 02 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 Python
pytorch 实现在测试的时候启用dropout
May 27 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 daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php生成短域名函数
2015/03/23 PHP
thinkPHP查询方式小结
2016/01/09 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python中pygame安装方法图文详解
2015/11/11 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python3 简单实现组合设计模式
2020/07/02 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
工程造价管理专业大专生求职信
2013/10/06 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
美术专业自荐信
2014/07/07 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Python 数据可视化之Seaborn详解
2021/11/02 Python
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android