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去除字符串两端空格的方法
May 21 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python中单、双下划线的区别总结
Dec 01 Python
Python构建网页爬虫原理分析
Dec 19 Python
python实现简单遗传算法
Mar 19 Python
简单实现Python爬取网络图片
Apr 01 Python
Python 实现交换矩阵的行示例
Jun 26 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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&amp;&amp;mysql)六
2006/10/09 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
JS之相等操作符详解
2016/09/13 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Python 使用office365邮箱的示例
2020/10/29 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
夜大自我鉴定
2013/10/31 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
新党章的学习心得体会
2014/11/07 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
离婚被告答辩状
2015/05/22 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
Python面向对象之内置函数相关知识总结
2021/06/24 Python
python多线程方法详解
2022/01/18 Python
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
MySQL新手入门进阶语句汇总
2022/09/23 MySQL