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实现在目录中查找指定文件的方法
Nov 11 Python
python使用append合并两个数组的方法
Apr 28 Python
深入理解python多进程编程
Jun 12 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
python验证身份证信息实例代码
May 06 Python
实例详解Python模块decimal
Jun 26 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
浅谈pycharm使用及设置方法
Sep 09 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
Python分类测试代码实例汇总
Jul 23 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
phpStorm2020 注册码
2020/09/17 PHP
jQuery 入门讲解1
2009/04/15 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
python多线程扫描端口示例
2014/01/16 Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python实现定时发送邮件
2020/12/23 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
领导证婚人证婚词
2014/01/13 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
毕业生自荐信范文
2015/03/05 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书