从实例入手学会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/

猜你喜欢

转载自blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/87344517