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获取当前日期和时间的方法
Apr 30 Python
Python使用smtplib模块发送电子邮件的流程详解
Jun 27 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
Python找出最小的K个数实例代码
Jan 04 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
Django 路由控制的实现代码
Nov 08 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
Python登录系统界面实现详解
Jun 25 Python
python 实现屏幕录制示例
Dec 23 Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
如何在PHP中使用数组
2020/06/09 PHP
自己的js工具 Event封装
2009/08/21 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
Python画图学习入门教程
2016/07/01 Python
Python 异常处理的实例详解
2017/09/11 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
Python常用库大全及简要说明
2020/01/17 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
运动会稿件300字
2014/02/14 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
2014年小学工作总结
2014/11/26 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
教师教育教学随笔
2015/08/15 职场文书