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 optparse模块使用实例
Apr 09 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
实例讲解python中的协程
Oct 08 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
python和c语言的主要区别总结
Jul 07 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
python实现简单飞行棋
Feb 06 Python
python剪切视频与合并视频的实现
Mar 03 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
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
Vue实现购物车场景下的应用
2017/11/27 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
通过Python实现自动填写调查问卷
2017/09/06 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
华三通信H3C面试题
2015/05/15 面试题
行政经理的岗位职责
2013/11/23 职场文书
环境整治工作方案
2014/05/18 职场文书
端午节演讲稿
2014/05/23 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Node实现搜索框进行模糊查询
2021/06/28 Javascript