标签: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