精华内容
下载资源
问答
  • 前言在这一篇博文中,咱们介绍了如何快速的搭建个人的博客网站,但是这个...因此,本文将着重介绍如何快速的给自己的博客网站加入评论系统。评论系统介绍所谓评论系统,相信对于关注博客的你来说肯定不陌生。通常来讲有

    前言

    这一篇博文中,咱们介绍了如何快速的搭建个人的博客网站,但是这个博客网站是基于Github Pages的纯静态网站,自身是不带任何的可交互的元素的,自然也就没有评论系统。但是,对于一个好的博客网站,如果没有评论系统,那基本上就属于自娱自乐了,也违背了博客分享的精神。因此,本文将着重介绍如何快速的给自己的博客网站加入评论系统。

    评论系统介绍

    所谓评论系统,相信对于关注博客的你来说肯定不陌生。通常来讲有两大类,一类是网站自己提供评论系统,这个在很多较大的博客平台比较常见;一类是基于第三方的评论系统,这个在个人博客网站较为常见。对于个人博客,由于很多都是简单的托管在其他平台上面,比如博主网站托管于Github,因此很多都基本上是静态的网站,自身是没法提供评论系统。也正因为如此,也就催生了非常多的第三方的评论系统。这些系统国外比较有名的是Disqus,国内更加五花八门了。国外的由于天朝特殊的网络环境,并不十分稳定,所以对于国内的博客网站来说,通常都会选择国内的第三方评论系统。至于国内的评论系统有哪些选择呢,建议参考这篇博文。总的来说,由于评论系统这个东东,目前还没有明显的盈利的地方,倒闭关门是很有可能的,因此尽量选择大公司为后台的吧。

    最近在研究评论系统的时候,偶然发现有人居然直接使用Github的Issue系统来做评价系统,顿时眼前一亮啊。鉴于咱们的博客便是基于Github的,如果可行,那简直绝配了。于是博主就开始疯狂的搜索有关现状,Github都多少年了,博主深信应该已经有人造过轮子了。这类轮子肯定是属于前端方面的,于是在npm网站上面搜索,果然发现不少。比较下来,发现一款国人开发的gitment最为完整。这也就本文要介绍的评论系统了,本博客网站在可见的未来将采用该评论系统,这里对作者的分享表示感谢。

    gitment使用

    gitment的使用在官网有较为详细的介绍,步骤写的还是比较清楚的。这里只是对于讲述可能踩到的坑:

    • 请务必不要使用你的<username>.github.io这个repo作为gitment的repo

      可能这个repo作为Github特殊的repo,使用它作为gitment的repo时,总是不能够认证成功。建议再创建一个专门用来存放评论的repo。

    • 生成oauth授权的时候,请务必确保Authorization callback URL是你的博客网站,如博主的是https://keysaim.github.io。否则会授权失败。

    • 每次提交博文的时候,请务必记得初始化改博文的评论,否则读者无法进行评论

      所谓初始化其实就是在你的博文下面用自己的Github账号登陆之后,会出现一个Initialize Comments字样的按钮,点击该按钮完成初始化。改初始化其实就是在你的Github repo里面针对这篇博文生成一个新的Issue。

    结语

    gitment之类的评论系统是基于Github的Issue系统,每篇博文都对应于你的Github repo里面的一个Issue,博文里面的评论其实都是在改Issue里面的评论,因此,你是有绝对权限对所有评论进行管理的。另外,由于gitment项目开始不久,并且貌似作者比较忙,因此功能性,质量方面还是存在不足,当你使用过程中如果遇到任何问题,可以直接去gitment repo里面查看一下是不是别人也碰到类似问题。可能的情况下,你也可以提交自己的解决方案。

    本文也可以在博主个人博客中查看。

    展开全文
  • 自己根据v2ex网站的接口的客户端 可以查看该网站最新的帖子,发帖人,及对帖子的评论 可以查看该网站最热的帖子,发帖人,及对帖子的评价 可以查看该网站各个节点靠前的贴子,并可以根据自己的爱好收藏该网站你感...
  • 《我如何自己做自己的导师》

    千次阅读 2015-06-08 16:04:04
    同学可能会问“很多人已经批评我太个人主义了,我还向自己学习,不是自恋吗?”。不是的,事实上,我们很少理性的认识自己是谁,并向自己学习。有谁知道自己的口音和语调是什么样的,请举手,不到三分之一。你看,...
        同学可能会问“很多人已经批评我太个人主义了,我还向自己学习,不是自恋吗?”。不是的,事实上,我们很少理性的认识自己是谁,并向自己学习。有谁知道自己的口音和语调是什么样的,请举手,不到三分之一。你看,我们每天都说话,但是自己的声音是自己听的最少的声音。我在台上说话,你马上知道我的普通话标准不标准,可是你就不知道你自己的普通话标准不标准,尽管可能很不标准。仅仅自己的声音这种最显而易见的东西你都不知道,不要说知道自己的心灵了。有的人说,我这个人挺好的。我告诉你,其实你都不知道自己的品行是什么。品行是在人际关系的交往中,对于其他人和自己的利益平衡方式或能力。其实你每天都做很多的好事和坏事,每天都有很多的经验和教训,但是人们很少会总结一下。所以我们需要的第一个自我学习的方法其实就是反思。

        每个人都是社会的一份子,每个人都很重要,没有谁比谁好不好。将来你们到社会上会碰到一个老板,他可能会说“你怎么这么笨呢?”很简单,因为老板笨,把你用错了地方。没有人是真正没有用的,适合的人在适合的岗位上就会比较好,很多人会经常出错或者做不到,那是因为他在一个不合适的位置上。他表现不好,并不是这个人本身不好,而是因为这个岗位和他本人的个性程度不适合。

        大家在大学里有很好的机会,认识这么多的同学,周围有那么多的朋友,我们要做的反思是什么呢?是从其他人身上看出自我,把自我客观化。比如,用技术手段来做。有很多同学认为自己不擅长演讲,告诉你们一个很简单的方法,大家现在的手机不是可以录音、录像么,你给自己定一个题目,比如说“怎么样才能有出息?”寝室里六个同学开个小型演讲会,每个同学演讲五分钟,演讲的时候让其他同学录下来。录完后,你都不用同学给你提意见,自己看一下,就会觉得自己的普通话怎么那么不标准。我第一次听到自己的声音,是我1994年参加北京电台“新闻1994”采访。我坐在汽车里听采访录音,觉得这个声音怎么这么陌生呢,怎么江苏味那么浓呢?当我换一个角度把它客观化的时候,就能听到自己的声音了。

        所以社会学里有一个理论“Self-mirror”。我们要从镜子里了解自己。怎么知道你的脸蛋是圆的还是方的,怎么知道最近胖了还是瘦了呢?有两种方法,一是自己照镜子,还有一种是通过其他人的反应。前段时间我到博鳌,有个朋友说“袁岳你可是胖了”,因为他是15年前见过我的。可另一个同学说“袁岳你怎么瘦了”,因为他是两个月前见到我的。每个人都有参照物。后来我跟他们说,其实我穿白色的衣服就显得比较胖,穿黑色衣服的时候就显得比较瘦。

        其实在座的很多同学都是80后、90后,都是独生时代的同学。独生时有个很重要的特征是,大多是在父母、爷爷奶奶和亲戚朋友迎合我们的环境当中成长的,这样的社会化进程不是正常的,而正常的社会进程是,他不喜欢你的时候,就告诉你不喜欢;你不合适的时候,他就会拍你的砖头;认为你错的时候,就会批评你;你干错的时候,他会扣你的奖金……这才是正常的社会环境。但是,在独生子女的社会环境中,亲近我们的镜子,其实已经被扭曲了。大家小时候从父母、爷爷奶奶那里的大部分信息,其实不是真实的社会化信息,因为太宠我们了,因此没有及时敏感地反射社会那样的评价。所以我曾跟很多同学说,你们要想适合这个社会,特别是在职业上被陌生的老板或是陌生的客户接受,一个非常重要的特点就是超越父母对你的教育。所以,我们说的其他人,不是我们的父母,而是周围的同学、老师和其他人对我们的反应。

        我讲的第二个层次是,我们不是简单的从周围找到这个反应,而且我们要以更加紧密的方式作为一个组织中的成员去认识自己。一个人在不同的状况下,其实是不一样的。我上大学的那个时候,大学生都是非常容易激动的,一听说中国排球打胜了,就上街游行了;一听说中国羽毛球拿了冠军,又上街游行了。你会发现,平时不好意思喊口号的人,在游行的队伍中间,都能大声喊“振兴中华,振兴中华。”再举个例子,你被提升为某个学生协会的会员了,你发现这个协会有它的组织纪律,少数服从多数,即使你不爽,也是要服从的。

        中学课本里有一篇鲁迅先生的文章,叫做《药》。里面讲到人血馒头是革命党人的血,很多群众都去看革命党被杀头,这其实是挺可悲的,革命党本来是为群众去革命,最后群众还看着自己被革命。其实对于那些群众来说,杀的头是革命党还是反革命党并不重要,关键是有头可杀,有热闹可凑。这说明什么?当一个人存在于群体中间时,就会找到特别的感觉,获得特别的力量。最近在泰国,前一阵子黄衫军把前政府推翻了,最近红衫军说不定要把这个政府也推翻了,其实红衫军主要是农民,而且是泰国北部清迈地区比较没有文化的农民,但是聚集在一起就很有力量。

        再看回来,我们如何认识自己的社会责任?很多同学从来不知道自己多么有力量,直到有一天组织起来可以做很多事情。有很多同学心中有理想,想创业,或者想做一点公益,或者帮助别人,但是大多数只是自己在想,连个行动都没有。你第一次发表意见的时候,很可能会被其他人嘲笑。一个人的舆论能力和意见能力是如何最后能够领导其他人的呢?就是在开始的时候,要善于把自己的想法变成意见,想好了就表达出来,被其他人认同和支持也好,被人嘲笑和批评也好,这个过程就是社会动员的过程。在座的很多同学都有这个潜力。

        虽然这是很微小的资源,当你把它组织起来的时候,它能推动力比单独一个人强多了。我们每星期都以演讲协会的名义请名人演讲,如果以某个学生去邀请,他们可能就不会来。这是很不一样的。我知道很多同学不屑于做学生干部,不屑于参加组织活动,也不屑于组织给你的荣誉,但是我告诉你,每个人身上都有一部分潜力,若不与组织相连,自己是没有办法感觉到的。所以,我们要积极做组织化的工作。

        我们可在自己身上找出很多资源,一方面自我认识,另一方面通过组织化的形式发现自己,并在这个中间得到更多的发展和提升。如果我们平时注意对很多问题有所认识,留心每个灵感和诗意,可以提高自己的洞察力和想象力。可惜我们自己的大量资源,我们并没有在意,不搜集也不系统整理,反而被自己耽误了。



    http://blog.sciencenet.cn/blog-439966-495457.html  此文来自科学网张祚博客,转载请注明出处。
    展开全文
  • 此文档介绍了模糊综合评价的流程,里头加上了一些我自己写的笔记。相信对大家理解模糊评价有些帮助。
  • 如何打造成功的线上产品——基于用户评论建立的商品综合评价模型(1)背景问题分析数据预处理合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建...

    1.背景

    随着电商行业的迅猛发展,线上销售也成为广大商家销售的一种重要手段。电商产品每天都会产生大量的交易数据和用户评论数据,其中包含很多有价值的信息

    因此本文对某平台上微波炉的评论数据进行挖掘分析,建立商品综合评价模型,希望可以提供为商家和平台制定新的营销策略或者产品改善方面提供宝贵意见。

    1.1问题分析

    我们的目标是建立基于用户评论数据的商品综合评价模型,具体步骤:

    • 为了保证数据的质量,以及之后分析过程的准确度,我们首先对数据进行预处理,包括筛选出无关产品、删除重复评论等;
    • 对商品文本评论进行情感分析,量化情感度,给出情感得分。建立LDA主题模型提取评论的高频词,推测出客户对商品、物流、服务等方面的具体评价;
    • 建立产品评分模型。通过TOPSIS法等方法处理情感得分与星级,并依据它们得出单条评论的最终得分,同时构建时间序列模型,判断产品的声誉在在线市场中的变化趋势,并构造单条评论可信度系数1,最后给出加权后的各品牌口碑得分

    2.数据预处理

    在进行中文分词之前,必须要考虑到评论中存在很多没有实际价值的条目,如果把这些无用的评论数据也引入后续的分析工作中,一定会对分析造成很大的偏差,所以要对评论数据进行预处理,把大量的没有价值的评论删掉,我们进行的文本预处理主要包括删除无关数据文本去重

    2.1删除无关数据

    数据预处理还要考虑到数据的准确性,部分数据并非该商品的评论,因此我们删去商品标题中没有“微波炉”的评论,此步骤利用excel操作即可:
    数据——筛选——文本筛选——不包含“微波炉”
    找到12个非微波炉的评论数据

    2.2文本去重

    #导入数据
    >>> import pandas as pd
    >>> inputfile='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro.csv'
    >>> data=pd.read_csv(inputfile,encoding='utf-8',header=None)
    >>> data.head()
    

    在这里插入图片描述

    去除一些自动好评的数据,重复的评论等没有价值的数据。大多数文本去重是基于文本之间的相似度,包括编辑距离去重,simahash算法去重等,这些会使得我们去除一些相近的表达,造成错删。故本文采用比较删除法,直接删除完全相同的评论,尽量保留有用的评论。

    >>> outputfile='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_process1.txt'
    >>> data_unique = pd.DataFrame(data[0].unique())
    >>> l2=len(data_unique)
    >>> data_unique.to_csv(outputfile,index=False,header=False,encoding='utf-8')
    >>> print(u'共%s条评论,删除了%s条评论。' %(l1,l1 - l2))
    

    共1603条评论,删除了13条评论。

    3.情感分析

    我们采用Python中的TextBlob2对评论文本进行情感分析,获得情感得分。情感得分越接近-1说明越消极,越接近1越积极。
    我们假设情感得分等于x, 若x<-0.5,则情感判定为消极;x>0.5,则情感判定为积极; -0.5<x<0.5,则情感判定为中立。

    最终将评论文本分成了积极情绪的评论文本、中性评论文本和消极情绪的评论文本。

    inputfile='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_process1.txt'
    data2=pd.read_csv(inputfile,encoding='utf-8')#刚刚输出的data_process1设置了header=None,所以现在重新导入一下
    def function(x):
        testimonial = TextBlob(x)
        testimonial.sentiment
        a=testimonial.sentiment.polarity#sentiment.polarity方法会返回0到1的数字,越接近-1说明越消极,接近1越积极
        if a<-0.5:
            return '消极'
        elif a>0.5:
            return '积极'
        else:
            return '中立'
    data2['laber']=data2.apply(lambda x: function(x['review_body']),axis=1)
    data2.head()
    

    评论已经分为积极、中立和消极情绪

    鉴于中立评论数量大,喜爱倾向度低,本文将对积极评论数据及消极评论数据进行提取及分析。

    #分别提取积极和消极评论
    >>> data2_neg=data2[[u'review_body']][data2[u'laber']==u'消极']
    >>> data2_pos=data2[[u'review_body']][data2[u'laber']==u'积极']
    >>> data2_neg.head()
    >>> outputfile1='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_pos.txt'
    >>> outputfile2='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_neg.txt'
    >>>> data2_pos.to_csv(outputfile1,index=False,header=False,encoding='utf-8')
    >>> data2_neg.to_csv(outputfile2,index=False,header=False,encoding='utf-8')
    

    可以看出情感分析的灵敏度还是挺高的,都是“horrible”“terrible”这类词。

    4.LDA主题模型

    在对评论数据进行了情感倾向性判断后,对评论数据已经有了一个初步的感知。LDA模型采用的是词袋模型,将每一篇文档视为一个词频向量,从而将文本信息转化为易于建模的数字信息。本文将积极情绪和消极情绪的评论文本放入LDA主题模型中,并从主题模型中提取高频特征词。

    4.1评论文本分词

    #好像还是因为header=None的原因,具体为啥我也没搞清楚,反正还是要重新导入数据。
    >>> inputfile='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_neg.txt'
    >>> inputfile1='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_pos.txt'
    >>> data_pos_cut=pd.read_csv(inputfile1, encoding = 'utf-8', header = None)
    >>> data_neg_cut=pd.read_csv(inputfile, encoding = 'utf-8', header = None)
    >>> data3=data_pos_cut[0].apply(mycut)
    

    可以看出已经是进行分词了的

    4.2去除停用词

    停用词是指没有什么实际意义,对于整句的句意表达没有影响的词,通常是一些高频词汇、数字和特殊符号,如‘the、is、of、to’等。我们需要在预处理阶段就将停用词进行删除操作。

    #同样先导入数据
    >>> outputfile3='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_cut.txt'
    >>> outputfile4='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/micro_neg_cut.txt'
    >>> data3.to_csv(outputfile3, index = False, header = False, encoding = 'utf-8')
    >>> data4.to_csv(outputfile4, index = False, header = False, encoding = 'utf-8')
    >>> pos=pd.read_csv(outputfile3,encoding = 'utf-8', header = None)
    >>> neg=pd.read_csv(outputfile4,encoding='utf-8',header=None)
    
    #停用词表是在网上找的,根据自身数据的特点可以自行加一些如标题符号等。
    >>> stoplist='C:/Users/Linda Leung/Downloads/Problem_C_Data/Problem_C_Data/stoplist.txt'
    >>> stop = pd.read_csv(stoplist, encoding = 'utf-8', header = None, sep = 'tipdm')
    >>> stop = [' ', ''] + list(stop[0])
    >>> pos[1]=pos[0].apply(lambda s: s.split(' '))
    >>> pos[2] = pos[1].apply(lambda x: [i for i in x if i not in stop])
    >>> neg[1] = neg[0].apply(lambda s: s.split(' '))
    >>> neg[2] = neg[1].apply(lambda x: [i for i in x if i not in stop])
    

    4.3主题模型分析

    >>> from gensim import corpora, models#还没安装gensim的要先安装
    
    #负面主题分析
    >>> neg_dict = corpora.Dictionary(neg[2]) 
    >>> neg_corpus = [neg_dict.doc2bow(i) for i in neg[2]] 
    >>> neg_lda = models.LdaModel(neg_corpus, num_topics = 3, id2word = neg_dict) 
     #正面主题分析
    >>> pos_dict = corpora.Dictionary(pos[2])
    >>> pos_corpus = [pos_dict.doc2bow(i) for i in pos[2]]
    >>> pos_lda = models.LdaModel(pos_corpus, num_topics = 3, id2word = pos_dict)
    
    
    >>> pos_lda.show_topics()
    

    可以看到还是有很多没有价值的词或分词时错误分开的字母,但因为足够分析,我便没有补充停用词表再分析一次。为了保证数据能充分利用,应该补充停用词表进行重复分析2~3次,观察结果满意再做下面的分析。

    这个网页制作的词云美观又直接,推荐给大家

    https://wordart.com/

    在这里插入图片描述

    情感高频特征词
    积极works、perfectly、kitchen、quality、price、easy、heating、food、size、fits、space、heats、beautifu、recommend、good
    消极horrible、refund、terrible、crap、turntable、door、cheaply、stop、install

    4.4结论分析

    根据积极高频特征词的提取,反映了获得好评的微波炉具有的特点:

    (a) 操作步骤简单,
    (b) 能够高效地加热食物,
    © 尺寸大小适中,放在厨房中很合适。
    (d) 价格实惠,值得购买,
    (e) 性能质量良好。

    根据消极高频特征词的提取,反映了获得差评的微波炉具有的特点:

    (a) 微波炉门打开的时候有噪音
    (b) 材料看上去廉价
    © 转盘容易出现问题
    (d) 使用时间不长
    (e) 安装完成困难

    根据对上述产品的分析,我们可以看出商品吸引客户的特征不尽相同。除了客户对产品有着对质量的追求之外,微波炉的尺寸型号和操作方法是客户所在意的特征。
    除此之外,线上商品的售后服务也是值得关注的地方。物流服务需要及时到位,长时间的等待会让客户失去耐心。退换政策的设定是很有必要的,电商公司对于有瑕疵的产品要妥善处理,给予客户一个良好的消费体验。

    5后记

    在学校统计软件用的比较多的R语言,python是新学期才开始上,但看老师的样子,应该又是打算划水,学不到什么。经过这次我发现最好的自学办法,应该是自己实操一次,遇到bug是再正常不过的事情,想办法解决了会很有成就感,本文也是翻查各种资料综合大家的智慧,感慨自己需要学习的空间还是非常大的。

    本文参考链接1:https://www.docin.com/p-2287434323.html
    本文参考链接2:https://blog.csdn.net/weixin_44015907/article/details/97972429
    本文参考链接3:https://blog.csdn.net/qq_39309652/article/details/103448409?ops_request_misc=%7B%22request%5Fid%22%3A%22158345880119724847014850%22%2C%22scm%22%3A%2220140713.130056874…%22%7D&request_id=158345880119724847014850&biz_id=0&utm_source=distribute.pc_search_result.none-task


    1. 可信度系数根据评价用户的级别及用户是否优惠购买的数据给出。 ↩︎

    2. TextBlob是一个用Python编写的开源的文本处理库,它可以用来执行很多自然语言处理的任务,比如,词性标注、名词性成分提取、情感分析、文本翻译等等。 ↩︎

    展开全文
  • 爬取京东商品评价并生成词云

    千次阅读 多人点赞 2019-07-11 08:37:34
    上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家...我们自己实现一些小功能时同样需要讨论需求,也就是告诉别人...

    上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家来玩一把刺激的!

    一、需求背景

    在实际开发过程中,在我们动手开发之前,都是由产品经理为我们(测试、前端、后端、项目经理等)先讲解一下需求,我们了解了需求之后,才开始一起来讨论技术方案。
    在这里插入图片描述
    我们自己实现一些小功能时同样需要讨论需求,也就是告诉别人我们为什么要做这个东西?或者我们想利用这款产品解决什么问题。

    我们常常看到一些有关充气娃娃的表情包和图片或新闻,但是这种东西很少会像一些小视频一些相互交流,大家可能都是偷摸玩耍。所以猪哥相信其实大部分同学并没有亲身体验过充气娃娃到底是什么感觉(包括猪哥),所以猪哥很好奇究竟是什么一种体验?真的如传言中那样爽吗?
    在这里插入图片描述

    二、功能描述

    基于很多人没有体验过充气娃娃是什么感觉,但是又很好奇,所以希望通过爬虫+数据分析的方式直观而真是的告诉大家(下图为成品图)。
    在这里插入图片描述

    三、技术方案

    为了实现上面的需求以及功能,我们来讨论下具体的技术实现方案:

    1. 分析某东评论数据请求
    2. 使用requests库抓取某东的充气娃娃评论
    3. 使用词云做数据展示

    四、技术实现

    上篇文章中就给大家说过,今天我们以某东商品编号为:1263013576的商品为对象,进行数据分析,我们来看看详细的技术实现步骤吧!

    本教程只为学习交流,不得用于商用获利,后果自负!
    如有侵权或者对任何公司或个人造成不利影响,请告知删除

    1.分析并获取评论接口的URL

    第一步:打开某东的商品页,搜索你想研究的商品。
    在这里插入图片描述
    第二步:我们在页面中鼠标右键选择检查(或F12)调出浏览器的调试窗口。
    在这里插入图片描述
    第三步:调出浏览器后点击评论按钮使其加载数据,然后我们点击network查看数据。
    在这里插入图片描述
    第四步:查找加载评论数据的请求url,我们可以使用某条评论中的一段话,然后在调试窗口中搜索。
    在这里插入图片描述
    在这里插入图片描述
    经过上面4步分析,我们就拿到了京东评论数据的接口:https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

    productPageComments:看这个名字就知道是产品页评论

    2.爬取评论数据

    拿到评论数据接口url之后,我们就可以开始写代码抓取数据了。一般我们会先尝试抓取一条数据,成功之后,我们再去分析如何实现大量抓取。

    上一篇我们已经讲解了如何使用requests库发起http/s请求,我们来看看代码
    在这里插入图片描述
    但是在打印的结果中数据却是空?为何浏览器请求成功,而我们的代码却请求不到数据呢?难道我们遇到了反扒?这种情况下如何解决?

    大家在遇到这种情况时,回到浏览器的调试窗口,查看下浏览器发起的请求头,因为可能浏览器请求时携带了什么请求头参数而我们代码中没有。
    在这里插入图片描述
    果然,我们在浏览器头中看到了有两个请求头RefererUser-Agent,那我们先把他们加到代码的请求头中,再试试!
    在这里插入图片描述

    3.数据提取

    我们对爬取的数据分析发现,此数据为jsonp跨域请求返回的json结果,所以我们只要把前面的fetchJSON_comment98vv4646(和最后的)去掉就拿到json数据了。
    在这里插入图片描述
    将json数据复制到json格式化工具中或者在Chrome浏览器调试窗口点击Preview也可以看到,json数据中有一个key为comments的值便是我们想要的评论数据。
    在这里插入图片描述
    我们再对comments值进行分析发现是一个有多条数据的列表,而列表里的每一项就是每个评论对象,包含了评论的内容,时间,id,评价来源等等信息,而其中的content字段便是我们在页面看到的用户评价内容。
    在这里插入图片描述
    那我们来用代码将每个评价对象的content字段提取并打印出来
    在这里插入图片描述

    4.数据保存

    数据提取后我们需要将他们保存起来,一般保存数据的格式主要有:文件、数据库、内存这三大类。今天我们就将数据保存为txt文件格式,因为操作文件相对简单同时也能满足我们的后续数据分析的需求。
    在这里插入图片描述
    然后我们查看一下生成的文件内容是否正确
    在这里插入图片描述

    5.批量爬取

    再完成一页数据爬取、提取、保存之后,我们来研究一下如何批量抓取?

    做过web的同学可能知道,有一项功能是我们必须要做的,那便是分页。何为分页?为何要做分页?

    我们在浏览很多网页的时候常常看到“下一页”这样的字眼,其实这就是使用了分页技术,因为向用户展示数据时不可能把所有的数据一次性展示,所以采用分页技术,一页一页的展示出来。

    让我们再回到最开始的加载评论数据的url:

    https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

    我们可以看到链接里面有两个参数page=0&pageSize=10,page表示当前的页数,pageSize表示每页多少条,那这两个数据直接去数据库limit数据。

    老司机一眼便可以看出这就是分页的参数,但是有同学会说:如果我是老司机还干嘛看你的文章?所以我教大家如何来找到这个分页参数

    回到某东的商品页,我们将评价页面拉到最底下,发现有分页的按钮,然后我们在调试窗口清空之前的请求记录。
    在这里插入图片描述
    清空之前的请求记录之后,我们点击上图红框分页按钮的数字2,代表这第二页,然后复制第一条评价去调试窗口搜索,最后找到请求链接。
    在这里插入图片描述
    然后我们点击Headers查看第二页请求数据的url
    在这里插入图片描述
    然后我们比较第一页评价与第二页评价的url有何区别
    在这里插入图片描述
    这里也就验证了猪哥的猜想:page表示当前的页数,pageSize表示每页多少条。而且我们还能得出另一个结论:第一个page=0,第二页page=1 然后依次往后。有同学会问:为什么第一页不是1,而是0,因为在数据库中一般的都是从0开始计数,编程行业很多数组列表都是从0开始计数。

    好了,知道分页规律之后,我们只要在每次请求时将page参数递增不就可以批量抓取了吗?我们来写代码吧!
    在这里插入图片描述
    简单讲解一下做的改动:

    1. spider_comment方法增加入参page:页数,然后在url中增加占位符,这样就可以动态修改url,爬取指定的页数。
    2. 增加一个batch_spider_comment方法,循环调用spider_comment方法,暂定爬取100页。
    3. batch_spider_comment方法的for循环中设置了一个随机的休眠时间,意在模拟用户浏览,防止因为爬取太频繁被封ip。

    爬取完成之后检查成果
    在这里插入图片描述

    6.数据清洗

    数据成功保存之后我们需要对数据进行分词清洗,对于分词我们使用著名的分词库jieba
    首先是安装jieba库:

    pip3 install jieba

    在这里插入图片描述
    当然这里你还可以对一些介词等无效词进行剔除,这样可以避免无效数据。

    7.生成词云

    生成云词我们需要用到numpymatplotlibwordcloudPillow这几个库,大家先自行下载。matplotlib库用于图像处理,wordcloud库用于生成词云。

    在这里插入图片描述

    注意:font_path是选择字体的路径,如果不设置默认字体可能不支持中文,猪哥选择的是Mac系统自带的宋体字!

    最终结果:
    在这里插入图片描述
    我们来看看全代码:
    在这里插入图片描述

    五、总结

    因考虑新手的友好性,文章篇幅较长,详细的介绍了从需求到技术分析、爬取数据、清洗数据、最后的分析数据。我们来总结一下本片文章学到的东西吧:

    1. 如何分析并找出加载数据的url
    2. 如何使用requests库的headers解决RefererUser-Agent反扒技术
    3. 如何找出分页参数实现批量爬取
    4. 数据的提取与保存到文件
    5. 使用jieba库对数据分词清洗
    6. 使用wordcloud生成指定形状的词云

    这是一套完整的数据分析案例,希望大家能自己动手尝试,去探索更多有趣的案例,做个有趣的人~

    获取源码,扫描下方二维码关注微信公众号「裸睡的猪」,回复:京东商品评价
    在这里插入图片描述

    展开全文
  • 评论系统对于一个网站来说几乎是必不可少的,...但是对于没有用户注册登录功能的网站来说,也就没有所谓的用户信息表了,相信这样的网站不在少数,如果你的网站也没有用户信息表的话,但你也想要做评论系统,那你可...
  • 2、类似于论坛评论区 ,发布评论之后,不刷新页面就可以立刻看到自己评论 新浪微博的评论区实现方式 观察了一下新浪微博的评论区实现,从下面的图可以看出,因为时间固定显示为10秒前,因此可以推断: 点击“评论...
  • python豆瓣爬虫爬取评论做成词云

    千次阅读 2018-12-23 11:40:45
    后来发现如果把评论做成词云那展示起来不是很酷炫么。于是乎把这个过程分享记录下来。 虽然不是什么高大上的技术,但是是自己做出来的词云,难免有些兴奋。 所用到的库: 爬虫:requests,pymysql存库。 ...
  • Java实现评论回复功能

    千次阅读 2021-02-27 10:54:00
    评论功能或许是大多数的单体应用之中会用到的功能,我们会在自己所开发的项目之中进行集成该功能大多数时候我们会将评论功能划分成以下几种:单一型嵌套型两层型一、分类方式1、单一型单一型评论方式就是日常论坛之...
  • 微信小程序评价功能实现

    千次阅读 2019-09-03 17:57:29
    for循环5次,初始值是5星,data-name用于区别是那个评价的星星 src="{{item-total+1>0?’…/image/empty_stars.png’:’…/image/entity_stars.png’}}" 条件判断,图片判断一个是空星,一个实星,根据自己图片...
  • 旅游网-去哪儿网景点评论爬取

    千次阅读 多人点赞 2018-11-24 00:13:18
     最近由于学校的项目需要用到旅游相关的数据集,而与这方面相关的又必要少,于是就想到通过python爬虫自己去爬取。  由于我也是初次接触爬虫,很多知识点还不会,方式可能有点粗暴,但终归还是爬取了,可能就是慢了...
  • 数据库设计——评论回复功能

    万次阅读 多人点赞 2017-05-03 02:43:48
    我的归宿就是健康与才干,一个人终究可以信赖的,不过是他自己,能够为他扬眉吐气的也是他自己,我要什么归宿?我已找回我自己,我就是我的归宿。——《胭脂》 1、概述评论功能已经成为APP和网站开发中的必备功能。...
  • 如何评价导师评价网?

    千次阅读 2020-04-13 21:56:11
    来源:https://www.zhihu.com/question/38910709编辑:深度学习与计算机视觉声明:仅学术分享,侵删你是否正面临选导师,你知道导师评价网么?在信息互联...
  • 微信小程序的订单评论页面-仿淘宝

    千次阅读 2019-05-07 21:40:05
    微信小程序的订单评论页面-仿淘宝 在网上搜了下,大部分都挺麻烦的,所以自己写了个,感觉还可以 先看效果图: 需要用到的图片: 上代码: wxml: <view class='contains'> <form bindsubmit="onSubmit...
  • 用微信小程序模仿豆瓣电影评论demo,大家可以运行后将之修改,自己想要的样子
  • 评论页面的实现

    千次阅读 2019-03-07 14:41:47
    首先,上效果图,这样的评论界面很常见,日常新闻,社交等类的app中都有评论功能,今天就来看看怎么实现? 实现这种效果并不难,首先最外层肯定是Recycleview,然后设置他的Adapter来实现,重点在于Adapter的实现。...
  • 数据挖掘实战—电商产品评论数据情感分析

    千次阅读 多人点赞 2021-04-10 16:24:58
    文章目录引言一、评论预处理1.评论去重2.数据清洗二、评论分词1.分词、词性标注、去除停用词2.提取含名词的评论3.绘制词云查看分词效果三、构建模型1.评论数据情感倾向分析1.1 匹配情感词1.2 修正情感倾向1.3 查看...
  • 今天在给客户微信公众号开发的时候遇到一个问题,就是在回复的图文信息中引了自己服务器上的h5页面,但是点击跳转后缺少了点赞、评论等功能,这些功能如何实现,看别人的页面都是带有此类功能的,但是人家的页面...
  • PHP实现评论系统

    千次阅读 2018-11-17 18:15:15
    参考“多说”和“畅言”等评论系统,自己使用PHP语言实现了一个简单的评论系统。并记录了两种方式(递归方式和非递归方式)的实现过程,以及分析两种方式的优缺点,前端如何实现没有展现。 首先设计数据库如下: ...
  • 网易云音乐你喜欢吗?你自己也可以一个

    千次阅读 多人点赞 2019-09-30 00:17:04
    因为整理了关于网易云音乐的接口,喜欢的话,自己也可以去一款网易云音乐。 对于开源的一些人整理的接口,大家应该合理利用,可以用它来项目,比如前端程序员如果不会写服务端的话,免费的,开源的接口,是你...
  • 评论系统--开发总结

    千次阅读 热门讨论 2018-04-09 11:05:21
    目前为止,了两三个项目,有涉及教育的、论坛的、CMS的,每个项目里都有用到评论这个功能,所以我就想把评论这一块,单独拿出来,成一个组件化的模块。既节约了开发的工作,还能让自己对这个模块的功能有...
  • 安卓手机客户端评论功能是怎么的,例如,qq空间,你发一条说说,然后我去趟评论评论完后,在那一端就会收到一个新评论的提醒.想问问大家一般这个功能是怎么的,是借助第三方的SDK(如极光推送),还是只是自己...
  • 自己电脑上搭建一个FTP服务器

    千次阅读 2019-08-20 11:03:11
    自己电脑上搭建一个FTP服务器 因为项目需要,第一次搭建FTP,也是在博客上找的经验,写这篇博客,主要是想记录一下,留个笔记,以防后面需要。 本文是在不借助工具的情况下在自己电脑上搭建FTP服务器。我的是win...
  • 作者:ZY的小跟班全文共 1907 字 6 图,阅读需要 5 分钟———— ...一、旗舰产品商品评价区的组成图1 淘宝客户端安卓7.5.0版本,商品评价区前台功能结构图对于评论区的评价标签,笔者有个疑问,了解的朋友可以回答下:
  • 在Web系统中实现评论功能

    千次阅读 2019-09-11 16:03:45
    有一天,新Leader对我说:小伙子, 你来一下这个备注(用户评论)模块吧。我一听,这不是在为难我胖虎吗,之前从来没过啊。 但是转念一想,终于可以点新东西了,心里还是有些小开心得。OK,在开始之前先先...
  • 模仿mnist数据集制作自己的数据集

    万次阅读 多人点赞 2017-08-05 20:18:28
    想测试自己的数据集看看初步效果,于是就想套用现有的模型,将自己的数据集成和mnist或cifar数据集格式一模一样的格式。然后就发现Tensorflow里没有现成的方法可以将图片转换成类似于mnist和cifar数据集格式的方法...
  • 评论回复功能的实现

    万次阅读 多人点赞 2018-06-15 00:48:00
    下面说说我实现这个过程中遇到的一些困难。 ...RId指的是每个评论的唯一id,这个R取得是review(评论)的意思 RTId指的是每条帖子的id RRId指的是被回复的评论的id,如果有就是其id,无为0 ...
  • Java+MySQL实现评论功能设计开发

    万次阅读 多人点赞 2018-08-13 09:39:52
    Java+MySQL实现评论功能设计开发 一、背景 项目初始版本上线,有时间写点东西记录一下项目中的心得体会,通过这个项目学习了很多,要写下来的有很多,先从评论功能开始吧。由于项目需要增加评论功能,之前并无此...
  • 这篇文章主要介绍如何将文本转换为特征向量前的一些准备工作,主要内容包括:1、清洗文本数据2、标记文档3、词袋模型一、清洗文本数据清洗文本需要将文本中所...Title (Brazil): Not Available发现评论中含有一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 468,917
精华内容 187,566
关键字:

做自己的评价