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 相关文章推荐
python通过线程实现定时器timer的方法
Mar 16 Python
Python+django实现简单的文件上传
Aug 17 Python
python和opencv实现抠图
Jul 18 Python
python 获取图片分辨率的方法
Jan 08 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
Django接收照片储存文件的实例代码
Mar 07 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python 递归相关知识总结
Mar 03 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
PHP实现的日历功能示例
2018/09/01 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
python实例化对象的具体方法
2020/06/17 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
环境工程大学生自荐信
2013/10/21 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
php png失真的原因及解决办法
2021/10/24 PHP
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技