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实现多线程采集的2个代码例子
Jul 07 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
浅谈python可视化包Bokeh
Feb 07 Python
python学习入门细节知识点
Mar 29 Python
Python3实现的简单验证码识别功能示例
May 02 Python
python 实现登录网页的操作方法
May 11 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
浅析PEP572: 海象运算符
Oct 15 Python
Python 实现自动导入缺失的库
Oct 29 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 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循环获取GET和POST值的代码
2008/04/09 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
Python中enumerate函数代码解析
2017/10/31 Python
详解如何减少python内存的消耗
2019/08/09 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Python通过socketserver处理多个链接
2020/03/18 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
董事长秘书职责
2014/01/31 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
房产转让协议书
2014/04/11 职场文书
考试保密承诺书
2014/08/30 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2015感人爱情寄语
2015/02/26 职场文书