首页 > 其他 > 详细

爬取全本小说内容并进行文本分析

时间:2017-10-31 13:45:41      阅读:311      评论:0      收藏:0      [点我收藏+]

1.选一个自己感兴趣的主题。

我选择的主题是小说网站的爬取,所选文本是青云直上小说,程序也可用于爬取网站其他小说

技术分享

2.网络上爬取相关的数据。

from bs4 import BeautifulSoup
import requests

#获取小说各章节的网页地址
def get_urls():
    req = requests.get(url = aim)
    html = req.text
    div_bf = BeautifulSoup(html)
    div = div_bf.find_all(‘div‘, class_ = ‘listmain‘)
    a_bf = BeautifulSoup(str(div[0]))
    a = a_bf.find_all(‘a‘)
    nums = len(a[15:])                                      #删除开头重复章节
    for each in a[15:]:
        names.append(each.string)
        urls.append(main + each.get(‘href‘))
    return nums

#保存小说到本地
def writer(name, path, text):
    write_flag = True
    with open(path, ‘a‘, encoding=‘utf-8‘) as f:
        f.write(name + ‘\n‘)
        f.writelines(text)
        f.write(‘\n\n‘)

#获取小说内容
def get_contents(target):
    req = requests.get(url = target)
    html = req.text
    bf = BeautifulSoup(html)
    texts = bf.find_all(‘div‘, class_ = ‘showtxt‘)
    texts = texts[0].text.replace(‘\xa0‘*8,‘\n\n‘)
    return texts



main = ‘http://www.biqukan.com/‘
aim = ‘http://www.biqukan.com/30_30398/‘
names = []                                                   #章节名
urls = []                                                    #章节链接
nums = get_urls()                                            #章节数

print(‘小说开始下载:‘)
for i in range(nums):
    writer(names[i], ‘小说.txt‘, get_contents(urls[i]))
print(‘小说下载完成‘)

结果为:

技术分享

技术分享

技术分享

下载到txt文档中,完成小说全本爬取

 

3.进行文本分析,生成词云。

import re
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
file=open(‘I:\\大四\\python\\大作业\\小说.txt‘,‘r‘,encoding=‘utf-8‘).readlines()
data=‘‘
for i in file:
    data+=‘ ‘.join(jieba.cut(i))+‘ ‘
my_wordcloud = WordCloud(font_path=‘I:\\大四\\python\\py5\\msyh.ttf‘).generate(data)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
my_wordcloud.to_file(path.join("小说.png"))

技术分享

 

4.对文本分析结果解释说明。

    此显示的是文中最频繁出现的词汇,体现了文章的大意,也可以分析出作者写文章的风格和方向。

    在本文中可以看出出现了一个人名,可以猜测是男主人公,而出现我们他们可以推测是作者喜欢树立正反派概念制作刺激,并有但是转折来提升刺激,还有现在等多频词提高紧张度,但从文中出现的其他词语的含义可以看出作者写作水平并不高明,当然这只是推测,因为我也没看过。

    以上就是词频分析结果。

 

 

5.以上为所展示成果

 

爬取全本小说内容并进行文本分析

原文:http://www.cnblogs.com/hwk-1428/p/7760942.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!