美文网首页
爬虫(六)使用Beautiful Soup爬取小说

爬虫(六)使用Beautiful Soup爬取小说

作者: CristianoC | 来源:发表于2019-01-18 22:40 被阅读0次

从CSDN博主Jack-Cui学习记录

一、Beautiful Soup简介

简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个便秘吗方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

二、实战

1.背景介绍

小说网站-笔趣看:

URL:http://www.biqukan.com/

笔趣看是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更新速度。并且该网站只支持在线浏览,不支持小说打包下载。因此,本次实战就是从该网站爬取并保存一本名为《一念永恒》的小说,该小说是耳根正在连载中的一部玄幻小说。PS:本实例仅为交流学习,支持耳根大大,请上起点中文网订阅。

2.预备知识

更为详细内容,可参考官方文档:

URL:http://beautifulsoup.readthedocs.io/zh_CN/latest/

a)创建Beautiful Soup对象

如果将上述的html的信息写入一个html文件,打开效果是这样的(<!-注释->为注释内容,不会显示);

同样,我们还可以使用本地HTML文件来创建对象,代码如下:

使用如下代码格式化输出:

b)Beautiful Soup四大对象

Beautiful Soup将复杂HTML文档转换乘一个而复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

Tag

NavigableString

BeautifulSoup

Comment

(1)Tag

Tag通俗点讲就是HTML中的一个个标签,例如

上面的title就是HTML标签,标签加入里面包括的内容就是Tag,下面我们来感受怎样用Beautiful Soup来方便地获取Tags.。

下面每一段代码中注释部分即为运行结果:

我们可以利用soup加标签名轻松地获取这些标签的内容,是不是感觉比正则表达式方便多了?不过有一点是,它查找的是在所有内容中的第一个符合要求的标签,如果要查询所有标签,我们在后面进行介绍。

我们也可验证一下这些对象的类型:

对于Tag,有两个重要的属性:name和attrs

name

Soup对象本身比较特殊,它的name即为[document],对于其他内部标签,输出的值便为标签本身的名称。

attrs

在这里,我们把a标签的所有属性打印输出了出来,得到的类型是一个字典。

如果我们想要单独获取某个属性,可以这样,例如我们获取a标签的class叫什么,两个等价的方法如下:

相关文章

网友评论

      本文标题:爬虫(六)使用Beautiful Soup爬取小说

      本文链接:https://www.haomeiwen.com/subject/tfpidqtx.html