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 相关文章推荐
python3下实现搜狗AI API的代码示例
Apr 10 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
Python中反射和描述器总结
Sep 23 Python
Python中dict和set的用法讲解
Mar 28 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
django 连接数据库 sqlite的例子
Aug 14 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
May 26 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
Python使用pycharm导入pymysql教程
Sep 16 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编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
python进程与线程小结实例分析
2018/11/11 PHP
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python实现简单的四则运算计算器
2016/11/02 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
django rest framework 过滤时间操作
2020/07/12 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
毕业自我评价范文
2013/11/17 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
步步惊心观后感
2015/06/12 职场文书
立案决定书范文
2015/06/24 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python