需求分析
最近,斗破苍穹的动画第五季正在热播,我的一个好友,在追动画的同时,也对斗破苍穹的小说,产生了浓厚的兴趣,最近在看完小说了以后,产生了一个疑问,他问我说,“我感觉,读小说的时候,好像经常出现恐怖如斯,但是呢,我又说不清楚,到底小说中出现了多少个恐怖如斯,仙草哥哥,你能不能帮帮我,我想知道,小说中到底出现了多少次恐怖如斯呢?”
嗯,没错,对于一个普通读者来说,想要确切的知道,文章中到底出现了多少次某个关键词,可能不是很容易,但是对于一个“爬虫爱好者”来说,这个问题就显得不是很困难了,那么今天,我们就尝试来统计一下,斗破苍穹中到底出现了多少次“恐怖如斯”吧!
实现分析
首先,我们需要确定一点,在统计小说关键词的时候,我们要先得到整部小说。对于一些老的小说来说,可能你在网站上可以直接下载到整本书的txt文件,这自然就是更容易了。但是对于没有现成的txt文件的小说怎么办呢?很简单,只需要通过爬虫程序,就可以实现了
不过呢,我们需要注意的是,小说是有版权的,我们不可以随便的爬取小说,这是一种侵权的行为,因此,我并不会在本篇文章中爬取整部小说,这是不对的行为
import requests
from lxml import etree
from base64 import b64decode
# 只需要一行代码就可以得到结果了?真的很酷哦!
print(etree.HTML(requests.get(b64decode("aHR0cHM6Ly9yZWFkLnFpZGlhbi5jb20vY2hhcHRlci8yUjlHX3ppQlZnNDEvTXlFY3d0azVpOElleDBSSk9rSmNsUTIv").decode(), headers={"user-agent": "Mozilla/5.0"}).text).xpath("//div[@class='read-content j_readContent']/p/text()"))
好,现在,我们假设,我们已经得到了整部小说了,那么如何进行关键字的统计呢?当然方法比较多,一种简单的实现是,我们可以将整部小说,