Python浅析《长生疫苗》刘强东30万评论

583次阅读
没有评论

共计 1655 个字符,预计需要花费 5 分钟才能阅读完成。

提醒:本文最后更新于 2019-06-14 16:18,文中所关联的信息可能已发生改变,请知悉!

全文简介

对于近日让人气愤的长春疫苗事件,京东集团刘强东在微头条发表看法,一时间获取广大粉丝热评,评论人数也是呈现指数级的增长,那么大家对这件事的态度都是什么呢?我们用 Python 来看看大家都在说些什么。

涉及的 Python 爬虫知识:

  • APP 抓包
  • Scrapy 框架的使用
  • 词频统计
  • 词云可视化

任务分析

我们想要获得的数据是今日头条里面的微头条,搜索刘强东用户即可找到该微头条信息。然后我们采用手机抓包的方式来发现并获取数据。接下来再用 Python 中的爬虫框架 Scrapy 来抓取数据,并且将数据保存在数据库或者本地文件即可。最后是 NLP(自然语言处理)的简单应用,主要包含词云的展示。

今日头条手机 APP 抓包

对于 APP 数据的抓取首先要用到 APP 抓包工具,这种工具有那么几个,我用的是 Fiddler4 来实现的抓包。需要将你的 WIFI 和你的网络在相同 IP 下。具体的配置方法,大家可以自行进行百度。

我在这里提供几个参考的文章,供大家阅读。

Fiddler 实现手机抓包 – https://link.zhihu.com/?target=https%3A//blog.csdn.net/gld824125233/article/details/52588275

如何在 Android 手机上实现抓包?​ https://www.zhihu.com/question/20467503/answer/19540711

一图胜千言 ,抓包结果图如下图所示:

Python 浅析《长生疫苗》刘强东 30 万评论

将得到的网址 url 复制到浏览器(火狐浏览器)里面会变成下图这个样子:

Python 浅析《长生疫苗》刘强东 30 万评论

返回的是 JSON 文件类型的数据,很方便提取数据。另外我们精简一下网址,去掉一些无关紧要的查询字符,得到的精简网址如下:

http://is.snssdk.com/article/v3/tab_comments/?group_type=0&count=20&tab_index=0&forum_id=0&group_id=1606678936445955&offset=20&fold=1&iid=38762714651&device_id=37496218349​is.snssdk.com

一行太长,进行换行以后的结果:

Python 浅析《长生疫苗》刘强东 30 万评论

Scrapy 抓取 APP 数据

要想实现快速并且简单的抓取数据,爬虫框架要熟练掌握!而 Scrapy 框架又是一款功能强大的框架,该模块是爬虫必须掌握的模块!基本的用法大家可以参考 Scrapy 官网提供的教程,这个应该也是目前最好的教程了。

根据上一小节抓取到的网址结构,我们可以发现:

偏移量会随着每次的改变来翻页,所以我们只需在 Scrapy 里面的 start_urls 这么写就好(大概就是爬取了 30 万条):

Python 浅析《长生疫苗》刘强东 30 万评论
由于返回的是 json 数据,但是 Scrapy 本身并不天生支持 json 解析,所以还要导入 json 模块,用 json 模块里面的 json.loads() 函数将 response.body 转化成 json 文件,这样就可以方便的用中括号来提取我们想要的数据了。

Python 浅析《长生疫苗》刘强东 30 万评论
提取数据以后,我们要保存数据,保存数据的时候,我们需要编写 items 文件里面的内容。我就提取了两个字段,一个是用户名,一个是该用户发表的评论。至于其他字段,大家可以自行选取。

Python 浅析《长生疫苗》刘强东 30 万评论
返回的数据我们用一个生成器发送给了管道文件,在管道文件里面进行处理,在管道文件里面,里面有一个 process_item 方法,这个方法是我们事先数据入库(或者写入本地的方法),另外对于数据写入数据库,或者是数据写入本地的文本文件还是 json 文件等,还建议大家写上初始化方法,或者 open_spider 与 close_spider, 后两个方法实际上是对父类的重写。分别在打开和关闭爬虫的时候调用这两个方法。

Python 浅析《长生疫苗》刘强东 30 万评论
当写完管道项目以后注意,一定要打开配置文件里面的管道设置才能执行管道文件。

Python 浅析《长生疫苗》刘强东 30 万评论
写好以后就可以运行爬虫了!!! 运行程序如下:

数据爬完以后只能获取 12 万数据,到最后数据就是重复了(不再返回数据)!

Python 浅析《长生疫苗》刘强东 30 万评论

词云可视化

接下来对得到的数据进行词云可视化的展示:

宝宝云图:

Python 浅析《长生疫苗》刘强东 30 万评论
云图宝宝:

Python 浅析《长生疫苗》刘强东 30 万评论
宝宝脚丫:

Python 浅析《长生疫苗》刘强东 30 万评论
愤怒:

Python 浅析《长生疫苗》刘强东 30 万评论
心图:

Python 浅析《长生疫苗》刘强东 30 万评论
鸭子云图:

Python 浅析《长生疫苗》刘强东 30 万评论
未来 - 希望:

Python 浅析《长生疫苗》刘强东 30 万评论
正文完
 0
水东柳
版权声明:本站原创文章,由 水东柳 于2018-07-30发表,共计1655字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)