看《芳华》?

这个学期social media要学怎么爬Twitter还有Facebook,主要是社交平台的评论等等。这其中的关键点在于,如何找到DV,也就是选择的品牌在社交平台的表现带来的影响是什么。

拿个在social media里面做的比较好的星爸爸做例子。星爸爸确实是在经营着各种社交平台的,但你打开它的ins或者Facebook主页会发现,这哪像是一个big brand的homepage,完全是百变的状态。可以是奢侈的ins网红,创意的咖啡广告,或者平易近人的展示一杯咖啡制作过程。整体页面的色彩感也可以学很久了。相比较于其他品牌只会发一些coupon的信息或者只是借助于社交平台发自家广告而言,星巴克把社交平台作为了自己的一种marketing方式,更多的是发一些自己的CSR活动,比如做的老兵扶持的计划,真的有很多老兵在下面回复说,感谢星巴克做的这些活动blah blah,而对于它的竞争对手Costa,同样在Facebook下面经营,Costa的受众们基本在每一条下面的回复都有taste is horrible, service is not satisfactory…which is so interesting。

Twitter和Facebook的数据想到还比较开放,让我联想到上学期用八爪鱼爬微博,简直想剃光头,所以让我们来研究研究微博平台。其实一开始爬了简叔的微博评论,发现很多有趣的问题,之后另写一篇。然后我一直觉得《芳华》这部电影很有趣。一开始定档9月,然后推迟上映,但官微也并未公布为何推迟上映。我记得当时有评论说是因为“十月开会”,也有评论说是因为导演打了赌,而预售感觉要崩。而且后者的评论似乎占了大多数。但是时至今日,《芳华》重新上映,票房超十亿,要知道不管怎样,这确实是一部预售只有50W的电影。而且我记得10月有这个新闻的时候,一堆说《芳华》卖惨等的帖子。

一开始还是尝试微博的网页版数据,搜到的爬取方法基本都是2015往前的,要先模拟登陆。微博的加密用了rsa,好像2017年还修改了加密方式,所以之前那些代码基本都不成功,所以还是回到微博移动端。本来想以《芳华》上映日期12月15日为分界线,比较大众对《芳华》的情感得分变化。结果发现移动端搜索关键词只能返回100页数据,有点类似网页版只能返回50页数据,而且,貌似无解。于是只能看看最近100页数据大家对《芳华》的情感得分。


import requests

import json

import urllib

import re

import pandas as pd

import numpy as np

keyword = input('Enter the keyword(type

\'quit\' to exit ):') #接受手动输入关键词

self_keyword =keyword.encode("utf-8")

once = urllib.parse.urlencode({"kw":self_keyword})[3:] #移动端只需要对关键词进行一次解码


headers={'Connection':'keep-alive',

       'Cookie':'SCF=ApG5qh7G-BhXYx4V3tLYshY34HYS0IN2HEp6wDkwywl0HY7kDJbPbwwj5kFhw639TFSVRv7xuh8LoUlX0MD0fU4.;_T_WM=fdc6c0711c8848470967c913d9e1e70c;SUB=_2A253VoH-DeRhGeRL4lMZ8ynKzj6IHXVUuC-2rDV6PUJbkdBeLUT3kW1NUzV_dwuzY0wYidSiTzzRn8qzBUP6vsDY;SUHB=0FQq54wdRm-XJj; SSOLoginState=1515385262; WEIBOCN_FROM=1110006030;M_WEIBOCN_PARAMS=featurecode%3D20000320%26luicode%3D10000011%26lfid%3D106003type%253D1%26fid%3D100103type%253D1%2526q%253D%25E8%258A%25B3%25E5%258D%258E%26uicode%3D10000011',

       'Host':'m.weibo.cn',

       'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}

#以上改为自己的header,可以直接查看网页元素或者用fiddler

for i in range(2,100,1):#从第二页开始是因为搜索芳华,返回的第一页数据是影评,页面源代码和后面有区别

   p_url='https://m.weibo.cn/api/container/getIndex?type=all'+'&queryVal=%s'%(once)+'&featurecode=20000320&luicode=10000011&lfid=106003type%3D1'+'&title=%s'%(once)+'&containerid=100103type%3D1%26q%3D'+'%s'%(once)+'&page=%s'%(i)#定义网址

   page_resp = requests.get(p_url, headers=headers)

   page_data = page_resp.json() #微博存储数据和之前的豆瓣有点区别,用了json

    card_groups= page_data['data']['cards']['card_group']

   num=-1

   weibo_text={} #将对应微博内容存在字典

   time={}#微博事件

   name={}#微博昵称,后面做分析时候不需要,所以后来没有存

for card_group in card_groups:

        num+=1

        weibo_text['%s'%(num)]=re.sub(r']*>','',card_group['mblog']['text'])

        for i in weibo_text.keys():

            result2['%s'%(i)]=SnowNLP(weibo_text['%s'%(i)]).sentiments#直接算情感得分

    df=pd.DataFrame(index=weibo_text.keys(),columns=['text','comment'])

    df['text']=pd.Series(weibo_text,index=weibo_text.keys())

    df['comment']=pd.Series(result2,index=weibo_text.keys())

    print(df)


这一次大概有近1000条数据,但是数据拿下来以后发现一个问题,那就是当把所有数据放进一起时,有一些文本和情感得分到一起去了,这里我只能用一些很愚蠢的方法了,就是筛选然后用Excel VB重新写一下就好

看《芳华》?_第1张图片
乱成大狗
看《芳华》?_第2张图片
把两列数据并做一列

最后数据整理一下大概变成这样


看《芳华》?_第3张图片

对于不能爬到之前的数据还是感到很忧桑,日后再试试网页版按照时间搜索的~

日常词云

看《芳华》?_第4张图片
#旁友,一起去吃薯条不

你可能感兴趣的:(看《芳华》?)