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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
Python读写zip压缩文件的方法
Aug 29 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
详解用python生成随机数的几种方法
Aug 04 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python如何实现图片压缩
Sep 11 Python
利用python 下载bilibili视频
Nov 13 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
php 调试利器debug_print_backtrace()
2012/07/23 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python中进程和线程的区别详解
2017/10/29 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
三下乡活动方案
2014/01/31 职场文书
寄语学生的话
2014/04/10 职场文书
银行奉献演讲稿
2014/09/16 职场文书
党员民主评议个人总结
2014/10/20 职场文书
地方白酒代理协议书
2014/10/25 职场文书
房产证明范本
2015/06/19 职场文书
《金色的草地》教学反思
2016/02/17 职场文书