1.选一个自己感兴趣的主题或网站。(所有同学不能雷同)
2.用python 编写爬虫程序,从网络上爬取相关主题的数据。
3.对爬了的数据进行文本分析,生成词云。
4.对文本分析结果进行解释说明。
5.写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
6.最后提交爬取的全部数据、爬虫及数据分析源代码。
爬取京东某一本书的评价数据,并写入到jd.txt里面:
file = open('jd.txt','w')
def crawlProductComment(url,page):
html = urllib.request.urlopen(url).read().decode('gbk')
jsondata = html[26:-2]
# print(jsondata)
data = json.loads(jsondata)
for i in data['comments']:
commentTime = i['creationTime']
content = i['content']
print("时间:{}".format(commentTime))
file.write("{}".format(commentTime) + '\n')
print("评论:{}".format(content))
file.write("{}".format(content) + '\n')
print("-----------------------------")
for i in range(0,30):
print("正在获取第{}页评论数据!".format(i+1))
url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv6785&productId=11879970&score=0&sortType=5&page=' + str(i) +'&pageSize=10&isShadowSku=0&fold=1'
crawlProductComment(url,i)
file.close()
生成词云:
lyric= ''
f=open('jd.txt','r')
for i in f:
lyric+=f.read()
result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()
for i in result:
keywords[i[0]]=i[1]
print(keywords)
image= Image.open('ii.jpg')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()
wc.to_file('dd.jpg')
文本数据图:

词云图:
