博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个完整的大作业
阅读量:5045 次
发布时间:2019-06-12

本文共 2280 字,大约阅读时间需要 7 分钟。

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

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

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

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

5.写一篇完整的博客,附上源代码、数据爬取及分析结果,形成一个可展示的成果。

我选取的主题是校园的新闻网http://news.gzcc.cn/html/xiaoyuanxinwen/,然后用python语言在网络上爬取相关的数据。

import requestsfrom bs4 import BeautifulSoupimport jiebaimport matplotlib.pyplot as pltdef getHTMLText(url):    try:        r = requests.get(url, timeout = 25)        r.raise_for_status()        #r.encoding = 'utf-8'        return r.text    except:        return ""def getContent(url):    html = getHTMLText(url)    # print(html)    soup = BeautifulSoup(html, "html.parser")    title = soup.select("div.hd > h1")    print(title[0].get_text())    time = soup.select("div.a_Info > span.a_time")    print(time[0].string)    author = soup.select("div.qq_articleFt > div.qq_toolWrap > div.qq_editor")    print(author[0].get_text())    paras = soup.select("div.Cnt-Main-Article-QQ > p.text")    for para in paras:        if len(para) > 0:            print(para.get_text())            print()    fo = open("can.txt", "w+")    fo.writelines(title[0].get_text() + "\n")    fo.writelines(time[0].get_text() + "\n")    for para in paras:        if len(para) > 0:            fo.writelines(para.get_text() + "\n\n")    fo.writelines(author[0].get_text() + '\n')    fo.close()    article = {        'Title' : title[0].get_text(),        'Time' : time[0].get_text(),        'Paragraph' : paras,        'Author' : author[0].get_text()    }    print(article)def main():    url = "http://news.gzcc.cn/html/xiaoyuanxinwen/"    getContent(url);main()

  

import requestsfrom bs4 import BeautifulSoupfrom wordcloud import WordCloudimport reimport sysimport jiebaimport matplotlib.pyplot as plt non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)txt = open('can.txt',"r",encoding='utf-8').read()ex = {} ls = []words = jieba.lcut(txt)counts = {}for word in words:    ls.append(word)    if len(word) == 1:        continue    else:        counts[word] = counts.get(word,0)+1for word in ex:    del(counts[word])     items = list(counts.items())items.sort(key = lambda x:x[1], reverse = True)for i in range(20):    word , count = items[i]    print ("{:<10}{:>5}".format(word,count)) mywc = WordCloud().generate(word)plt.imshow(mywc)plt.axis("off")plt.show()

  

 

转载于:https://www.cnblogs.com/junjun21/p/7767184.html

你可能感兴趣的文章
HTML5学习
查看>>
cocos2dx翻牌效果示例
查看>>
SpringBoot系列: SpringBoot 启动慢的问题
查看>>
32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)
查看>>
【转】Linux下nginx配置https协议访问的方法
查看>>
activemq集群搭建Demo
查看>>
zookeeper系列之通信模型(转)
查看>>
windows Phone 7如何实现background的情况下不丢失数据
查看>>
windowsphone 中文开源项目集合
查看>>
Unity3D:代码中改变Sprite
查看>>
代码生成器原理
查看>>
Exp3 免杀原理与实践
查看>>
[ZooKeeper] 1 基本概念
查看>>
面试整理:版本信息
查看>>
linux中通过lsof恢复删除的文件,前题是fd被占用。
查看>>
【插件开发】—— 6 SWT 复杂控件使用以及布局
查看>>
linux下Apache服务器使用入门----httpd.conf
查看>>
什么样虚拟主机才能满足电子商务网站性能要求
查看>>
使用dbutils进行数据库操作
查看>>
KS检验学习[转载]
查看>>