BeautifulSoup使用
来源:互联网 发布:游泳运动员肌肉 知乎 编辑:程序博客网 时间:2024/05/21 17:52
BeautifulSoup使用
1.简介
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性。
2.安装
安装BeautifulSoup比较简单,直接使用pip命令进行安装,Windows cmd下输入“pip install bs4”然后进入python输入“import bs4 print(bs4)”在这里向大家推荐一个开发python的软件—anaconda使用方便 安装时自带许多模块 免去安装的麻烦。我这里用的anaconda,具体安装配置请看我的另外一篇文章“anaconda安装及使用”
pip install bs4
import bs4print(bs4)
3.BeautifulSoup解析器
1.python标准库html.parser
用法:BeautifulSoup(markup,”html.parser “)
优势:python的内置标准库执行速度适中文档容错能力强
劣势:在python3.2.2前的版本中文档容错能力差
2.lxml HTML解析器
用法:BeautifulSoup(markup,”lxml”)
优势:速度快文档容错能力强
劣势:需要安装C语言库
3.html5lib解析器
用法:BeautifulSoup(markup,”html5lib”)
优势:最好的容错性,以浏览器的方式解析文档生成HTML5格式的文档
劣势:速度慢不依赖外部扩展
lxml解析速度很快 推荐大家使用!
pip install lxml
4.使用
#! -*- encoding:utf-8 -*-"""" Beautiful Soup"""from bs4 import BeautifulSoupimport codecs#创建BS并指定解析器#codes 指定编码集防止乱码soup=BeautifulSoup(codecs.open('scenery.html','r','utf-8'),'lxml')print (soup.prettify)print ('输出所有的ul:',soup.ul)print ('输出第一个ul:',soup.find('ul'))print ('输出所有符合条件的ul:',soup.find_all('ul')[1])print('根据属性值定位:',soup.find('li',attrs={'nu':'2'}))print('获取标签中的值:',soup.find('li',attrs={'nu':'2'}).get('nu'))print('获取标签文本中的值',soup.find('li',attrs={'nu':'2'}).a.get_text())#soup.p.string 获取标签的文本内容
scenery.html 如下:
<html><head></head><body> <div id="content"> <div class="title"> <h3>长沙</h3> </div> <ul class="table"> <li>景点<a>价格</a></li> </ul> <ul class="content"> <li nu="1">岳麓山<a class="price">60</a></li> <li nu="2">橘子洲<a class="price">60</a></li> <li nu="3">岳麓山<a class="price">60</a></li> </ul> </div></body></html>
- 使用beautifulsoup
- BeautifulSoup使用
- BeautifulSoup使用
- BeautifulSoup使用
- BeautifulSoup 安装及其使用
- beautifulsoup 简单使用
- python 中使用BeautifulSoup
- Beautifulsoup 使用笔记
- BeautifulSoup使用总结
- BeautifulSoup的安装使用
- Python BeautifulSoup基本使用
- beautifulSoup的使用
- BeautifulSoup使用笔记
- 【Python】BeautifulSoup使用
- 03.BeautifulSoup使用
- BeautifulSoup的使用
- BeautifulSoup中的选择器使用
- BeautifulSoup使用相关知识
- ThinkPHP5中使用Smarty
- 日志
- Performance Issue Relative To Temporary Table
- [JAVA]给定一个整形数组,求其和、平均数、最大值及最小值、打印数组中的数据
- Intellij Idea 配置 GitHub
- BeautifulSoup使用
- 防火墙(firewalld与iptables)
- Hibernate的学习之路三十(HQL的基本查询)、
- Java中的String为什么是不可变的?
- 网络编程
- Excel2016中设置图表的互补色
- 变态试题
- 傅里叶分析之掐死教程(完整版)
- Java Develop——分布式系统下 AOP 实现 session 身份验证