码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-31 14:20:10      阅读:449      评论:0      收藏:0      [点我收藏+]

标签:print   作业   dcl   方向   requests   href   request   odi   ext   

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.以上为所展示成果

 

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

标签:print   作业   dcl   方向   requests   href   request   odi   ext   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!