学习!学习!!学习!!!学习以外的目的就这么多了!在东东上的时候,突然播放了一个充气娃娃的广告,就点进去看了评论。它们都是来自上帝的评论。于是想把大神们的评论拉
学习!学习!!学习!!!学习以外的目的就这么多了!
在东东上的时候,突然播放了一个充气娃娃的广告,就点进去看了评论。它们都是来自上帝的评论。于是想把大神们的评论拉下来仔细看看,于是就诞生了这篇文章。纯粹是学习。别做梦了,不喜勿喷!
首先我找到了华东最火的娃娃,里面有8w+的评论。一定有很多神的评论。所以我决定从中提取我们想要的数据。
因为有些网站不喜欢外部爬虫大量消耗自己服务器的资源,所以会有自己的反爬虫。如果你不使用代理,他们可以将你识别为爬虫,并无数次重定向你,导致你的爬虫报告错误。所以我们必须伪装我们的爬行动物。
然后需要带上我们三个防爬头球哥。当然,这只是最基本的防攀爬措施。更多的防攀爬措施和技巧,可以参考一下。它曾经让我抓狂,但现在我对它赞不绝口!
cookie——关注用户类型,这里特指登录用户还是游客?
refer-指用户向哪个页面发送网络访问和数据请求。
用户代理是指哪个浏览器访问后台服务器。
首先,找到防止我们爬回来的必要参数。
在获取数据时,可以通过将非空数据添加到头中来获取它们。
先试试吧。
我们可以看到,我们已经成功地获得了数据。但是数据格式需要进一步处理。我们先来分析一下获得的数据。
获得的数据前面有20位数字& # 39;fetch JSON _ comment 98(& # 39;,后面四更& # 39;]}'。所以首先,我们需要去掉这些多余的修饰符,把它们做成最终的json格式数据。
Json_data = response.text[20:-2]我们再来看看运行结果:
好的,我们初步达到了目标。因为我们现在的目标只是评论,不需要其他参数。所以现在转到网页,分析这些评论的位置。
我们可以看到我们想要的评论内容在评论下的内容中,所以我们先在评论中定位,然后循环获取内容中的内容。
对于comments_all中的注释:print(comment[& # 39;内容& # 39;])
好了,现在已经成功获取了第一页的内容,下面的评论还需要翻,要翻几页才能找到规律。
PageSize=10每页显示10条记录。
区别就在于这个参数页,所以可以确定页数是由它控制的。所以我们可以设置一个变量来控制它,从而得到所有页面的评论。
在get_spider_comments方法中加入变量page,当我们指定page的值时,它就可以得到固定页面的注释。
在batch_spider_comments方法中,使用sleep方法模拟用户浏览,防止ip因抓取过于频繁而被阻塞。
对于范围内的I(100):打印(& # 39;攀登& # 39;+str(I+1)+& # 39;页…')get _ spider _ comments(I)# Batch get comment方法print(& # 39;爬虫完毕!')就可以成功获取你想要抓取的页面数量的所有数据!
接下来,我们抓取数据的任务就结束了。现在想通过字云可视化分析一下它火的原因。
对于comments_all中的注释:with open(comments_file_path,& # 39;a+& # 39;,编码= & # 39;utf-8 & # 39;)作为f: f.write(注释[& # 39;内容& # 39;] + '\ n & # 39)让我们来看看我们都向文件中写入了什么。
当我们需要词云分析的时候,我们需要数据,所以我们需要先把获得的评论放到文档里。这里,为了方便起见,我把它们直接放到txt文档中。
首先我们需要了解一下杰霸和wordcloud,使用pip install jieba安装杰霸库。然后用街霸对获得的评论进行分段。
with open(comments_file_path,encoding = & # 39utf-8 & # 39;)as fin:comment _ text = fin . read()word _ list = jieba . lcut _ for _ search(comment _ text)new _ word _ list = & # 39;'.加入(word_list)看看效果。
然后用pip安装wordcloud再安装word cloud。最后,使用generate方法生成单词云图。
好的,接下来我们需要找一张喜欢的图片做分词。
所以大家可以根据自己的意愿来设定画面的形状。
我选了张的小狗的照片。我在这里介绍了imageio的imread方法来获取原始图像dog.jpg的参数。
然后用mask=mask传递形状参数,这样我们最后得到的就是一个圆形的单词云图。
def create _ word _ cloud():mask = im read(& # 39;dog.jpg & # 39)word cloud = word cloud(font _ path = & # 39;msyh.ttc & # 39,mask = mask)。生成(cut _ words())word cloud . to _ file(& # 39;dog.png & # 39)我们来看一下实现字云效果后的小狗图片。
好了,目标达到了。源代码还在整理中。如果你想学习,请直接联系我!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/222023.html