从实例入手学会BeautifulSoup的常用方法

场景

Beautiful Soup是一个强大的解析工具,它能根据网页的结构和属性等来解析网页。

实现

导入库

from bs4 import BeautifulSoup as BS

解析器

BeautifulSoup在解析时实际上依赖解析器,它除了支持Prthon标准库中的HTML解析器之外,还支持一些第三方解析器,比如lxml。

Beautiful Soup支持的解析器


1.Python标准库 

BeautifulSoup(markup, “html.parser”) 

Python的内置标准库、执行速度适中、文档容错能力强 

Python 2.7.3及Python 3.2.2之前的版本文档容错能力差

2.xml HTML解析器 

BeautifulSoup(markup, “lxml”) 

速度快、文档容错能力强 需要安装C语言库

3.lxml

XML解析器 

BeautifulSoup(markup, “xml”) 

速度快、唯一支持XML的解析器 需要安装C语言库

4.html5lib

 BeautifulSoup(markup, “html5lib”) 

最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档 速度慢、不依赖外部扩展

lxml使用

比如这里我们使用lxml:

soup = BS(text,'lxml')

这里BS是BeautifulSoup的别名,因为前面我们已经:

from bs4 import BeautifulSoup as BS

获取匹配的第一个标签

find方法可以获取匹配的第一个标签

以爬取情话为例

网址:

https://www.duanwenxue.com/huayu/tianyanmiyu/list_69.html

打开F12进行检查,发现

情话内容在第一个class为list-short-article的div里面,所以我们可以这样使用

soup = BS(text,'lxml')
        arttis = soup.find('div', class_='list-short-article')

获取匹配的所有标签   

可以使用find_all方法

比如这里的情话内容都在a标签里,且其target属性为blank

所以我们可以这样获取:

soup = BS(text,'lxml')
        arttis = soup.find('div', class_='list-short-article').find_all('a', {'target': "_blank"})

更多方法

更所方法使用请参照BeautifulSoup文档

https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值