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 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
代码讲解Python对Windows服务进行监控
Feb 11 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 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截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php-app开发接口加密详解
2018/04/18 PHP
PDO::exec讲解
2019/01/28 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
angularJS开发注意事项
2018/05/26 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
python3实现多线程聊天室
2018/12/12 Python
Python向excel中写入数据的方法
2019/05/05 Python
django-filter和普通查询的例子
2019/08/12 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
毕业生自荐信格式
2014/03/07 职场文书
运动会班级口号
2014/06/09 职场文书
文明城市创建标语
2014/06/16 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
硕士学位论文评语
2014/12/31 职场文书
债务追讨律师函
2015/06/24 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
spring boot实现文件上传
2022/08/14 Java/Android