BeautifulSoup使用

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 bs4
print(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 BeautifulSoup
import  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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值