zoukankan      html  css  js  c++  java
  • 用python重新定义【2019十大网络流行语】

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    作者:朱小五

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

    http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

    12月1日,《咬文嚼字》编辑部以一首“顺口溜”发布2019年度十大流行语。“文明互鉴”、“区块链”、“硬核”、“融梗”、“××千万条,××第一条”、“柠檬精”、“996”、“我太难/南了”、“我不要你觉得,我要我觉得”、“霸凌主义”十条流行语入选。

    微博评论下有很多网友纷纷表示,XXX为什么能上榜?XXX为什么没上榜?

    这点呢,小五表示理解,毕竟采用不同的统计口径得出的结论可能不同。

    那么,小五干脆也自己定义个统计口径,重新“定义”一下【2019十大网络流行语】

    获取数据

    通过搜索“网络流行语”,可以发现已经有网站帮我们做了整理。

    在这里插入图片描述

    利用python爬虫可以获取该网站的2019年度所有网络流行语。

     1 def main():
     2     data = []
     3     n = 1
     4     for i in range(4542,5589): 
     5         dic = {}
     6         url = 'https://www.lxybaike.com/index.php?doc-view-'+str(i)+'.html'
     7         print('已成功采集{}条数据'.format(n))
     8         html = restaurant(url)
     9         doc = pq(html)
    10         dic['tittle'] = doc('#doctitle').text()
    11         dic['num'] = doc('#doc-aside > div.columns.ctxx > ul > li:nth-child(1)').text()
    12         data.append(dic)
    13         time.sleep(random.random())
    14         n = n + 1
    15     return data  

    爬取成功√

    共929个词语。

    我们在获取这些热门流行词的同时,也获取了他们的一些其他数据,比如浏览次数和出现时间。

    在这里插入图片描述

    但浏览次数很难作为评判这个词语是否热门的指标,毕竟大家又不是都来这个网站搜索,所以还是需要一个全网的数据才更准确一点。

    一开始选择了百度指数,结果发现很多词语没有收录,需要付费。于是我就选用了搜狗指数!

    在这里插入图片描述

    将刚才爬取得到的929个网络流行语,可以根据下面式子来构造url。

    urls= 'http://zhishu.sogou.com/index/searchHeat?kwdNamesStr='+str(name)+'&timePeriodType=YEAR&dataType=SEARCH_ALL'

    再循环爬取依次得到他们的年度平均搜索指数。

    成功得到2019年度网络热门流行词排行榜(凹凸玩数据版)!

    在这里插入图片描述

    其中标记绿色的词语为2018年末出现,在2019年开始流行,在统计时也列入列入2019流行语中。

    2019网络热门流行词排行榜

    根据上文得到的热门流行词排行榜,小五又搜集了一些网上的资料 ,利用PS来制作了十张流行词的解释图。

    下面开始颁奖:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

     

    一千个人眼中就有一千个哈姆雷特。

    相信每个人心里都有自己的一个流行语排行榜。

    完整代码

     1 import requests
     2 from pyquery import PyQuery as pq
     3 import pandas as pd
     4 import time
     5 import random  
     6 from fake_useragent import UserAgent
     7 ua = UserAgent()
     8  9 headers = {'User-Agent':ua.random}
    10 11 def main():
    12     data = []
    13     n = 1
    14     for i in range(4543,4550): #自己设置id范围
    15         dic = {}
    16         url = 'https://www.lxybaike.com/index.php?doc-view-'+str(i)+'.html'
    17         print('已成功采集{}条数据'.format(n))
    18         html = requests.get(url,headers=headers).text
    19         doc = pq(html)
    20         dic['tittle'] = doc('#doctitle').text()
    21         dic['num'] = doc('#doc-aside > div.columns.ctxx > ul > li:nth-child(1)').text().replace('浏览次数:','').replace('','')
    22         dic['zan'] = doc('#ding > span').text().replace('[','').replace(']','')
    23         dic['id'] = i
    24         data.append(dic)
    25         time.sleep(random.random())
    26         n = n + 1
    27     return data  
    28 29 if __name__ == '__main__':
    30     data = main()
    31     final_result = pd.DataFrame(data)
    32     final_result.to_csv('凹凸玩数据.csv',encoding="utf_8",index = False)
  • 相关阅读:
    linux系统中如何进入退出vim编辑器,方法及区别
    [转]JAVA的动态代理机制及Spring的实现方式
    mybaties 缓存
    全面分析 Spring 的编程式事务管理及声明式事务管理
    面试(4)-spring-Spring面试题和答案
    vector的多套遍历方案
    【QT】QT下载与安装
    【QT】无需写connect代码关联信号和槽函数
    【QT】第一个QT程序(点击按钮,显示特定文本)
    【QT】error: 'SIGNAL' was not declared in this scope
  • 原文地址:https://www.cnblogs.com/Qqun821460695/p/12059589.html
Copyright © 2011-2022 走看看