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多线程扫描端口示例
Jan 16 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
Saltstack快速入门简单汇总
Mar 01 Python
python 捕获shell脚本的输出结果实例
Jan 04 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
Python模块的加载讲解
Jan 15 Python
python仿evething的文件搜索器实例代码
May 13 Python
Python中新式类与经典类的区别详析
Jul 10 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 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检测数组长度函数sizeof与count用法
2014/11/17 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
PHP简单遍历对象示例
2016/09/28 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
新手简单了解vue
2019/05/29 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
python封装对象实现时间效果
2020/04/23 Python
python多线程http下载实现示例
2013/12/30 Python
讲解Python中的标识运算符
2015/05/14 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python中int()函数的用法浅析
2017/10/17 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python实现端口检测的方法
2018/07/24 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
通俗讲解python 装饰器
2020/09/07 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
歌颂祖国演讲稿
2014/05/04 职场文书
规范化管理年活动总结
2014/08/29 职场文书
七年级话题作文之执着
2019/11/19 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL