zoukankan      html  css  js  c++  java
  • python爬虫——京东评论、jieba分词、wordcloud词云统计

    接上一章,动态页面抓取——抓取京东评论区内容。

    url=‘https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1’

    重点是productId——产品id、page——页码、pageSize:指定每一页展示多少评论

    #coding:utf-8
    import requests
    import json,time
    
    def get_detail(url):
        wbdata = requests.get(url).text
        wbdata = wbdata[25:-2]
    
        data = json.loads(wbdata)
        news = data['comments']
    
        for n in news:
            title = n['content']    
            print title
            print '-'*20
    
    
            
    for i in range(30):
        url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=' +str(i) +'&pageSize=10&isShadowSku=0&fold=1'
    #url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'
        if requests.get(url).status_code == 200:
            get_detail(url)
            time.sleep(10)
            print i

    代码类似,不详细说明(get、json、数据处理)。

    加入time.sleep(10)防止ip被禁。

    结果如下:

    ----------------------------------------------------------

    想比较直观的显示评论重点,因此加入jieba分词还有wordcloud词云(没有库的,通过pip install jieba)

    import matplotlib.pyplot as plt
    from wordcloud import WordCloud
    import jieba,os
    import jieba.analyse

    text_from_file_with_apath = open('sss.txt').read()

    wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
    wl_space_split = " ".join(wordlist_after_jieba)
    print wl_space_split
    tags = jieba.analyse.extract_tags(text_from_file_with_apath, topK=30)
    print tags
    s = " ".join(tags)

    my_wordcloud = WordCloud().generate(s)

    plt.imshow(my_wordcloud)
    plt.axis("off")
    plt.show()

    简陋版词云效果。

    wordcloud 默认使用了DroidSansMono.ttf 字体库,改一下换成一个支持中文的ttf 字库, 重新运行一下这十行代码,就可以了。

    wordcloud词云默认不支持中文,可能会显示还多矩形框。

    解决办法——改一下换成一个支持中文的ttf 字库

    Python27Libsite-packageswordcloud.py            中的 ----    DroidSansMono.ttf     替换修改为  simfang.ttf

     -----------------------------------

    在线词云生成网页:https://wordart.com/create

    ------------------------------------

    参考文章:http://blog.csdn.net/dylanzr/article/details/60868969

    http://python.jobbole.com/87496/?repeat=w3tc

  • 相关阅读:
    不走弯路,就是捷径
    小白逆袭之路
    java期末设计(十三周)
    java第6次作业
    java第五次作业
    java第四次作业
    第三次作业
    第二次作业
    对异常的看法
    java学习笔记(一)
  • 原文地址:https://www.cnblogs.com/vhills/p/7296603.html
Copyright © 2011-2022 走看看