【简介】:今天来说说地摊经济。Python技术部分请参考第四部分。给我数据,用数据说话!知乎上有个问题:疫情结束后,你最想做的一件事是什么?有人回答说,他最想见的人是楼下烧烤店的老板;他最想做的事情就是喝一品脱啤酒,几十根烤串,自己慢慢吃,然后看着身边的人忙着聊天。一场疫情过后,很多人终于明白,摇晃的红酒杯并不是生活的全部。平平淡淡的烟火气,才是人生的真谛。近来,烟火气十足的地摊经济火了起来。这一切都源于成都的一次尝试:3月,成都出台政策,允许商户在特定区域临时占道。一时间,烧烤摊、服装摊、小商品摊纷纷摆在路边。两个月后,成都发布数据显示,已解决10万个就业岗位,中心城区餐饮业复工率超过98%。一季度GDP同比下降3%的成都,一下子恢复了生机。当人流回归,城市的活力就会回归。一时之间,地摊经济成了茶余饭后的话题,不少人已经开始盘算摆摊卖什么了。以前城管不允许摆摊。今天城管叫你去摆摊。地摊经济时代真的来了吗?今天我们就带大家使用一下数据盘。01.地摊经济火了!微博热点数据先来看微博微热点数据:来源:http://www.wrd.cn/goSearch.sht全网热度指数走势6月3日热度逐渐上升,并达到峰值6月4日9点99.69全网关键词云图再看全网关键词云图。在所有与地摊经济相关的信息中,提及频率最高的词是“地摊经济”、“摆地摊”和“全员”。02.哔哩哔哩视频弹幕数据目前,哔哩哔哩上也出现了很多地摊经济的视频。我们看到了一个关于成都地摊经济文化的视频。目前,该视频在哔哩哔哩的播放量已达14.1万,收获了3856条弹幕。地址:https://www.bilibili.com/video...那么大家在这些弹幕里都在聊什么呢?我们对这些弹幕进行分析整理,让我们看看词云图。从弹幕词云图可以看出,除了“地摊”和“成都”之外,讨论最多的话题还有“健康”、“城管”、“盈利”。其中,摊位的“食物”、“小吃”、“烧烤”和“清洁度”也是大家非常关心的问题。视频的最后,还有弹幕投票,看你是否支持地摊经济。支持就打1号,不支持就打2号。据统计,共有1869个弹幕参与投票,其中91.44%的弹幕支持,只有8.56个%不支持。03、微博评论话题数据让我们看到了地摊经济讨论度最高的微博。首先看到微博上的话题:#你会考考思考展开到底吗#我们分析整理了3436条评论数据:“城管”是大家考虑最多的。原城管不让我摆地摊。今天城管叫你去摆摊。已经很久了。其次,“经济”、“营业额”、“收入”也是大家特别关心的重点。以下是#如果展开地携带你会卖什么#的话题,目前该话题阅读量408.6万,讨论3934。去重后得到3657条数据。评论词云通过分析词云可以发现,“贴膜”是很多人都想尝试的地摊项目。其次,“烧烤”、“烤冷面”、“煎饼果子”等街头小吃是很多人的选择。除了食品,“卖花”、“饰品”、“袜子”等产品也是很多人想尝试的东西。有意思的是,“算命”也被多次提及。看看#你的专业摆地摊能做什么#我们一共获得了1641条讨论数据。这里比较有意思的是:我们可以看到新闻传播专业选择卖报纸,机械专业选择开锁,哲学专业选择算命等神奇操作。参与地摊话题讨论的都是哪些人?我们对参与话题的微博用户进行了分析,一共得到了4875条数据。微博评论用户的性别比例可见一斑。参与话题的用户中,女性用户占比71.62%,而男性用户仅占28.38%。在地摊经济话题中,女性用户的参与率远超男性用户。评论用户地域分布参与话题的用户来自哪里?经过分析排序可以看出,广东、北京、河南的参与度最高,分布位列前三。其次是江苏,也有不少海外网友参与话题。评论用户年龄分布共享经济话题评论中的用户年龄分布是怎样的?经过分析可以看出,90后的参与率最高,达到了70.56%。其次是00后,占比12.58%。其次是80后,排名第三,占比9.15%。04.摆摊,后浪!教你用Python分析微博数据微博评论数据分析我们用Python获取了微博地摊经济话题的热门评论数据和B站热门视频弹幕数据,并进行了处理和分析。哔哩哔哩弹幕的爬虫之前已经展示过,这里是微博评论爬虫的关键代码。01数据采集微博分为:网页微博、手机微博、手机微博。这次我们选择手机(https://m.weibo.cn/)进行数据采集。我们要演示的网址如下:https://weibo.com/5382520929/..._rnd1591495913796打开以上网址后,使用谷歌浏览器的抓包工具将设备切换到手机端,刷新网页再次。通过分析网页可以发现评论数据是通过动态js加载的,通过分析得到真实的数据请求地址:https://m.weibo.cn/comments/h..._id=140218361800408&max_id_type=0参数说明如下:id/mid:评论ID,抓包抓取。max_id/max_id_type:在上一页返回的响应数据中。我们使用requests获取数据,使用json解析提取数据,关键代码如下:importpackageimportrequestimportnumpyasnpiimportpandasaspdimportreimporttimeimportjsonfromfakerimportFactorydefget_weibo_comment(ids,mid,max_page,max_id=0,max_id_type=0):"""功能:获取指定微博的评论数据,数据接口从chrome切换到手机端抓取数据。注意:本程序对每次采集次数有限制,每次采集后每5分钟抓一次即可"""max_id=max_idmax_id_type=max_id_type#存储数据df_all=pd.DataFrame()foriinrange(1,max_page):#打印进度print('我正在获取第{}页的评论'.format(i))#获取URLurl='https://m.weibo.cn/comments/h...{}&mid={}&max_id={}&max_id_type={}'.format(ids,mid,max_id,max_id_type)#添加headersheaders={'User-Agent':Factory().create().user_agent(),'Referer':'https://m.weibo.cn/detail/159...','cookie':'复制cookie信息','X-Requested-With':'XMLHttpRequest',}#发起请求try:r=requests.get(url,headers=headers,timeout=3)除了Exceptionase:print(e)r=requests.get(url,headers=headers,timeout=3)ifr.status_code==200:解析数据json_data=json.loads(r.text)#获取数据comment_data=json_data['data']['data']created_time=[i.get('created_at')foriincomment_data]text=[i.get('text')foriincomment_data]user_id=[i['user'].get('id')foriincomment_data]screen_name=[i['user'].get('screen_name')foriincomment_data]reply_num=[i.get('total_number')foriincomment_data]like_count=[i。({{'create_time':create_time,'text':text,'user_id':user_id,'screet_name':screen_name,'reamy_name':reque__num':reque_num,'okef_count':okey_count}=True)#休眠一秒time.sleep(np.random.uniform(2))else:print('分析错误!打印最后一个值',max_id,max_id_type)continuereturndf_all运行函数if__name__=='__main__':#获取微博评论df=get_weibo_comment(ids='4511703964943057',mid='4511703964943057',max_page=200)获取的数据以数据框的形式存储,包括评论时间、评论文本、评论用户id、回复数和回复数likes如下图:df.head()02数据预处理我们对获取到的数据进行初步处理,主要包括:重复值处理created_time:提取时间信息text:初步清洗user_id:根据用户ID获取用户相关信息,步骤是临时略。重复值df=df.drop_duplicates()转换字典week_transform={'Mon':'Monday','Tue':'Tuesday','Wed':'Wednesday','Thu':'Thursday','Fri':'Friday','Sat':'Saturday','Sun':'Sunday'}提取周df['day_week']=df['created_time'].str.split('').apply(lambdax:x[0])df['day_week']=df['day_week'].map(week_transform)提取日期时间df['time']=df['created_time'].str.split('').map(lambdax:x[-1]+'-'+x[1]+'-'+x[2]+''+x[3])df['time']=df.time.str.replace('May','05').str.replace('Jun','06')文本字段处理模式='
