• 爬虫大作业


    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) + '
    ')
            print("评论:{}".format(content))
            file.write("{}".format(content) + '
    ')
            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')
    

    文本数据图:

    词云图:

      

  • 相关阅读:
    javascript 获取鼠标在盒子中的坐标
    jquery中clientY, pageY, screenY的区别,最后三张图一目了然
    javascript 小清新颜色翻页效果
    javascript 缓动返回顶部案例
    原生js轮播图实现
    javascript Math对象
    javascript 获取节点元素的封装
    javascript 转换大小写字母
    2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010
    2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1009
  • 原文地址:https://www.cnblogs.com/18128319239F/p/8919980.html
Copyright © 2020-2023  润新知