充气娃娃?Python告诉你到底有多爽......

上某东的时候,突然给我弹了一个充气娃娃的广告,于是就点进去就看了一下评论,全是神评论啊。所以我就想着把大神们的评论们扒拉下来仔细瞅瞅,于是这篇文章就诞生了??,纯属学习啊,不要想入非非啊,还有,不喜勿喷!

按照软件设计流程来:

需求分析-功能描述-技术文档-详细设计-编码-测试-交付-验收-后期维护

1.需求分析:

首先我先找了某东最火娃娃,里面评论近乎7万条,这里面神评论一定不少。所以决定从这个里面扒拉我们想要获取的数据

2.功能描述

  1. 充气娃娃这种东西,一般大家都在网上见得多,所以玩起来到底感觉怎么样。大家有可能知道,但是我不知道??。所以我只能分析一下大伙的使用感受。这次我将获取到的数据统计以词云的方式呈现。这样呈现的数据比传统的统计图更直观且更有艺术感。

3.技术文档

1.使用requests获取某东上的所有评论;

2.使用jieba将获取到的评论切割成单个词语,为词云做铺垫;

3.使用wordcloud生成词云图用以展示数据。

4.详细设计

如上图所示,首先我们F12或者右键打开开发者模式,然后找到Network下面的All,然后随便复制一句评论在下面ctrl+F复制搜索。找到这句评论所在的位置。

找到评论的我所在位置之后,点击左边的Headers,如图上所示的Request URL就是我们所要爬取所有评论的link。

5.编码

找到评论所在的link之后,我们就可以上手coding了。评论有近七万条,每页只有十条评论,所以就是说有近七千多页。但是不要慌,我们先爬取一页数据看看,只要这一页成功了,剩下的页数问题都不大。

首先使用requests获取数据(requests的不会用的童鞋可自行百度哈)

但是,似乎,but没有拿到数据,什么鬼!

分析之后,确定是少了什么东西,首先我们来看看浏览器。

发现了吗?

就是少了这个Refer和UserAgent,回到代码继续完善。。。

可以看到接入Refer和UserAgent之后已经拿到了我们想要爬取的数据。

但是这个json格式的数据看起来怪怪的,怪在哪里呢?前面多了这些fetchJSON_comment98vv7990(,后面多了);

所以我们首先要去掉这些对我们无益的东西来拿到正确的json数据

通过改良,拿到了我们想要的数据。但是我们想要的只是评论啊,这里怎么还有好多评论之外的东西呢?我们返回浏览器继续查看

通过对比发现我们要的评论是在comments下面的content里面,按照这个逻辑,我们首先要进入到comments里面,然后在comments里面遍历出所有的content。

然后将数据保存我们命名的jd_comments.txt文件中。(本来获取到的数据是要放在数据库里面的,咱们在这里将它放入txt文档是为了后面词云的使用)

对比一下,看写入到file里面的内容与我们想要爬取的内容是否一致

接下来似乎单页内容的爬取已经大功告成了,现在我们举一反三来试试多页评论的爬取。

首先我们按照上面的步骤再次复制一段评论

然后通过同样的方法找出它的link对它们进行对比

对比发现除了它们的page不一样之外其余都是一样的。

也就是说它的分页是按照pagesize = 10 的每页十条记录和page = 0,1,2,3,。。。进行分页显示的。

每页十条记录显示是不变的,变的是不断递增的page,所以我们要把这个page设置为一个变量,让他循环增加。

这里说明一下

对get_spider_comments方法加入变量page,当我们指定page的值时,它就可以获取固定页面的评论。

在batch_spider_comments方法中sleep方法,用来模拟用户浏览,防止因为爬取太频繁导致ip被封。

首先我们爬取了100页的数据,可以看到爬取了984行。证明我们的多页爬取也是没有问题的。

为了更加直观方便的看出评论的内容,我们决定使用词云来进行展示。

首先需要我们对jieba和wordcloud进行了解,使用pip install jieba对jieba库进行安装。然后用jieba对获取到的评论进行分词。

然后使用pip install wordcloud再安装wordcloud。最后用generate方法生成词云图。

说明一下,默认生成的词云图是正方形的,但是我在这里引入了imageio的 imread方法 以获取原始图片ball.jpg的参数

然后使用mask=mask 传递形状参数,所以最后我们获取到的就是一张圆形的词云图

所以之后大家可以按照自己的意愿来设置图片的形状。

希望大家可以参考学习,共同进步!!

原文地址:https://www.cnblogs.com/qingdeng123/p/11366594.html

时间: 2024-08-02 17:49:15

充气娃娃?Python告诉你到底有多爽......的相关文章

Python培训机构到底靠不靠谱

近几年Python开发工程师一直是市场的人才稀缺,Python语言简单易学,就业前景广这么多标签集中在门行业上自然也引起了年轻人的注意.现在学习Python的途径有很多,通过培训机构学习Python进入Python行业也是大有人在,但是Python培训到底靠不靠谱呢?我相信这是每个想进入Python学习者的心声,那么一个合格的Python培训机构是什么样子的呢,我们又究竟是不是和学习Python语言呢. 一.选择好的培训机构地理位置很重要 就拿北京来说,哪个培训机构不愿意让自己落脚在这里,这是国

25岁转行学习Python开发,到底能不能成功,看看这两个故事

先分享两个真实的案例: 故事一:我父亲当年是修摩托车的,一个月只有2000多块钱的收入,他当时学Python是35-36岁左右,在某鸟学了两年的时间,那个时候根本还没有四个月速成这个说法.现在我父亲做Python也是十多年了,这是我家里的事情. 故事二:现在23,24的大小伙子,做各种行业的都有,也有很多想改变自己,做开发拿高薪,但是从结果来看,从数据来看,他们是很年轻,但是最后成功学好Python的是不是也只有20%.难道因为他们老了吗? 我的故事分享完了,我想说什么大家也明白,对于28岁转行

python的multiprocessing到底怎么用的问题

众所周知,由于python(Cpython)的全局锁(GIL)问题存在,导致Thread也就是线程的并行并不可实现. multiprocessing 模块采用多进程而不是多线程的方式实现并行,解决了GIL的问题,一定程度上使状况得到了缓解. 然而,Multiprocess本身依然有一些功能上的瓶颈.其中一个重要的是:进程之间不能共享内存(线程间则可以共享内存).这意味着在进程间交换数据的时候,需要把数据打包.传递,解包.在python的语境下就是: "pickle from main proce

python的多线程到底有没有用?

在群里经常听到这样的争执,有人是虚心请教问题,有人就大放厥词因为这个说python辣鸡.而争论的核心无非就是,python的多线程在同一时刻只会有一条线程跑在CPU里面,其他线程都在睡觉.这是真的吗? 是真的.这个就是因为传说中的GIL(全局解释锁)的存在.不明白这个词的可以去百度一下,我解释不好(大家都是程序猿你懂的,我写错一个词就要挨喷了,就算我没写错对方理解错了,我也一样要挨喷).有了这样一个看似bug的存在,就导致了上面说的情况:同一时刻内,python的线程只有一条在CPU里面运行.

Python函数参数到底是按值还是按引用

本文是Python入门到函数遇到的疑惑. 下面一段是基础教程的原文Python函数. 按值传递参数和按引用传递参数 所有参数(自变量)在Python里都是按引用传递.如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了.例如: #!/usr/bin/python # 可写函数说明 def changeme( mylist ): "修改传入的列表" mylist.append([1,2,3,4]); print "函数内取值: ", mylist

python的import到底干了啥

还是抄的,从这里https://www.cnblogs.com/yan-lei/p/7828871.html Python code in one module gains access to the code in another module by the process of importing it. 两个概念: 模块(module):用来从逻辑(实现一个功能)上组织Python代码(变量.函数.类),本质就是*.py文件.文件是物理上组织方式"module_name.py",

python告诉你ti8 dota2英雄bp

文章链接:https://mp.weixin.qq.com/s/phJzZEQojndY-iNe77RF_w 恭喜OG成为ti8冠军,很可惜这次偶数年ti8中国队LGD与冠军失之交臂. 上学那会儿还是个dota的玩家,现在已经不玩了,对于这种国际性的赛事还是会比较关注的,这篇文章就是爬取ti8期间,bp英雄的统计(b是ban的简称:禁止一个英雄上场:p是pick的简称:挑选英雄上场). python爬虫之前写过几篇文章的,都是用requests+ BeautifulSoup 进行页面解析获取数据

10分钟用Python告诉你两个机器人聊天能聊出什么火花

欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家--其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏-- 今天做个简单的小实验,看看两个AI一起聊天会是什么样子的.为了让实验效果更好,我们两个机器人选取了不同网站的机器人(图灵和茉莉). 01 准备 1) pip下载安装python的requests模块,这个调用接口发送消息要用到. 2) 去图灵机器人官网(http://www.turingapi.com/)申

Python告诉你今天最冷的地方在哪里

抓取目标 这次我们的目标是爬取全国最冷的 10 座城市. 首先打开目标网站 - 中国天气网. 「 http://www.weather.com.cn/textFC/hb.shtml 」 image 我们要爬取全国所有城市的最低温度,然后获取温度最低的 10 个城市,并绘制成柱状图. 准备工作 由于爬取的数据少,考虑使用「 美味汤 - beautiful soup 」的方式来爬取. 另外,最后需要根据数据生成柱状图,需要安装requests.bs4.html5lib.pandas.matplotl