思路:

1. 安装代理AnProxy,在手机端安装CA证书,启动代理,设置手机代理;

2. 获取目标微信公众号的__biz;

3. 进入微信公众号的历史页面;

4. 使用Monkeyrunner控制滑屏;获取更多的历史消息;

5. 记录文章标题,摘要,创建时间,创作类型,地址等等;

6. 文章列表获取完成后,利用Monkeyrunner进入文章的列表,

7. 记录文章的阅读数,点赞数,评论数等;

8. 重复以上操作。

数据爬取结果

数据分析

文章发布数量分析:

文章总数:914篇,每个月发布情况如下:

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)

df['文章数'] = pd.to_datetime(df['日期']).dt.month

date = pd.DataFrame(df['文章数'].value_counts())

plt.figure(figsize=(15, 5))

plt.title('CSDN公众号文章发布情况')

plt.xlabel('月份')

plt.ylabel('文章数')

plt.xticks((1,2,3,4,5,6,7,8,9,10,11,12),('2017-01','2017-02','2017-03','2017-04','2017-05','2017-06','2017-07','2017-08','2017-09',

'2017-10','2017-11','2017-12'))

plt.plot(date.sort_index(),color='green',linestyle='dashed', marker='o', markerfacecolor='blue', markersize=8,)

plt.show()

通过发布文章次数的曲线来看,CSDN在4月份的才正式确定运营微信公众号,在11月份和12月份月发布次数已经超过100篇,每天6篇文章已经成为常态,小姐姐确实不容易啊,手动点赞!

创作类型分析:

import pandas as pd

import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)

data = pd.DataFrame(df['创作类型'].value_counts())

explode=[0,0,0,0,0]

plt.figure(figsize=(15, 6))

plt.axes(aspect=1)

plt.title('文章创作情况',fontsize=18)

plt.pie(x=data,autopct='%.2f%%',explode=explode,shadow=True,labels=['原创','未标记作者','创作或转发','其它','未知'])

plt.show()

通过文章的创作情况来看,一半以上的文章都是原创。基本上每天至少有一篇原创的文章。

有这样的文采,确实是难得的人才。

阅读数分析:

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)

data = df[['阅读数']]

a = data.sort_values(by=['阅读数'],ascending=False)

one = a[a['阅读数']>=70000].size

two = a[(a['阅读数']>=30000) & (a['阅读数']<70000)].size

three = a[(a['阅读数']>=10000) & (a['阅读数']<30000)].size

four = a[(a['阅读数']>=1000) & (a['阅读数']<10000)].size

five = a[(a['阅读数']<1000)].size

explode=[0.3,0,0,0,0]

fras = [one,two,three,four,five]

plt.figure(figsize=(15, 5))

plt.axes(aspect=1)

plt.title('阅读数分布比例',fontsize=18)

plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于70,000','30,000~70,000','10,000~30,000','1000~10,000','小于1,000'])

plt.show()

import pandas as pd

import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)

df_read = df[['标题','阅读数']]

data_read = df.sort_values(by=['阅读数'],ascending=False)

data_read.index = data_read['标题']

var = data_read['阅读数'][:10]

plt.figure(figsize=(15, 6))

plt.title('阅读数 TOP10 的文章',fontsize=18)

plt.xlabel('数量',fontsize=18)

plt.ylabel('标题',fontsize=18)

var.plot(kind='barh', stacked=True,alpha=0.5, color=['red'])

plt.show()

由于阅读数超过10W,返回值为100001,具体数字是多少,前后台不得而知。整体文章质量比较高,不乏有10万+的文章出现。大V,对技术资讯的传播具有很大的影响力!

点赞数分析:

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)

data = df[['点赞数']]

a = data.sort_values(by=['点赞数'],ascending=False)

one = a[a['点赞数']>=200].size

two = a[(a['点赞数']>=50) & (a['点赞数']<200)].size

three = a[(a['点赞数']<50)].size

explode=[0.3,0,0]

fras = [one,two,three]

plt.figure(figsize=(15, 5))

plt.axes(aspect=1)

plt.title('点赞数分布比例',fontsize=18)

plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于200','50~100','小于50'])

plt.show()

import pandas as pd

import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)

df = df[['标题','点赞数']]

data = df.sort_values(by=['点赞数'],ascending=False)

data.index = data['标题']

var = data['点赞数'][:10]

plt.figure(figsize=(15, 6))

plt.title('点赞数 TOP10 的文章',fontsize=18)

plt.xlabel('数量',fontsize=18)

plt.ylabel('标题',fontsize=18)

var.plot(kind='barh', stacked=True,alpha=0.7, color=['green'])

plt.show()

“中兴跳楼程序员妻子:他们就这样把我老公逼死了”文章点赞数1542,“我们愤恨于现实,在互联网内外,公司调整牺牲员工利益的不公平不道德之事时有发生,尤其是在互联网公司,裁员更是屡见不鲜,尤以“为什么总说程序员是吃青春饭的?”为重。而到了个人身上,随着年岁增长,学习、精神等的下降,上有老下有小,面对突然的被辞退,压力可想而知,但是当事情发生之时,我们还是要尽可能地调整心态,网上评论的很多,这种基层主管处于不上不下的尴尬处境,只能考虑降低心理预期,哪怕是从头再来呢。生活固然残酷,但也不要轻易放弃,毕竟还有自己爱和爱自己的人啊!”,大家对此特别赞同!

评论数分析:

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin.xlsx',encoding= 'utf-8',header=1,names=name,)

data = df[['评论数']]

a = data.sort_values(by=['评论数'],ascending=False)

one = a[a['评论数']>=50].size

two = a[(a['评论数']>=20) & (a['评论数']<50)].size

three = a[(a['评论数']<20)].size

explode=[0.3,0,0]

fras = [one,two,three]

plt.figure(figsize=(15, 5))

plt.axes(aspect=1)

plt.title('评论数分布比例',fontsize=18)

plt.pie(x=fras,autopct='%.2f%%',explode=explode,shadow=True,labels=['大于50','20~50','小于20'])

plt.show()

import pandas as pd

import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.pyplot as plt

name=['日期','时间','标题','作者','摘要','创作类型','是否头条号','阅读数','点赞数','评论数','地址']

df = pd.read_excel('weixin1.xlsx',encoding= 'utf-8',header=1,names=name,)

df = df[['标题','评论数']]

data = df.sort_values(by=['评论数'],ascending=False)

data.index = data['标题']

var = data['评论数'][:10]

plt.figure(figsize=(15, 5))

plt.title('评论数 TOP10 的文章',fontsize=18)

plt.xlabel('数量',fontsize=18)

plt.ylabel('标题',fontsize=18)

var.plot(kind='barh', stacked=True,alpha=0.7, color=['blue'])

plt.show()

python爬取论文全文数据_Python爬取微信公众号历史文章进行数据分析相关推荐

  1. Python爬取微信公众号历史文章进行数据分析,发现2017年运营总结,可以这样写!...

    作者:刘晓明,互联网公司运维技术负责人,拥有10年的互联网开发和运维经验.一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能. 广告时间:最后给自己代个盐~~欢迎大家有空时翻下我牌子(知 ...

  2. python爬取公众号历史文章_pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs)...

    原标题:pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs) 大数据挖掘DT数据分析 公众号: datadw 本文爬虫代码可以通过回复本公众号关键字"公众号& ...

  3. 微信公众号历史文章抓取

    微信公众号历史文章抓取 目录结构 WechatSpider │ README.md │ chromedriver.exe │ main.py │ gzhspider.py │ requirements ...

  4. 【Python爬虫】微信公众号历史文章和文章评论API分析

    上一篇文章爬取微信公众号文章信息准备工作介绍了微信公众号历史文章和文章评论API的组成情况,历史文章API格式:https://mp.weixin.qq.com/mp/profile_ext?acti ...

  5. 如何抓取微信公众号历史文章?使用订阅号实现微信公众号历史文章爬虫

        微信订阅号已经改版了,这篇文章已经过时了,不过可以提供还算有价值的参考.     微信公众号已经成为生活的一部分了,虽然里面有很多作者只是为了蹭热点,撩读者的 G 点,自己从中获得一些收益:但 ...

  6. 订阅号微信公众号历史文章爬虫php,2019.9月最新爬取微信公众号历史文章的办法...

    版权申明 原创文章:本博所有原创文章,欢迎转载,转载请注明出处,并联系本人取得授权. 版权邮箱地址:banquan@mrdwy.com 简介 我反复试了网上各种方法,都可能已经过时,或者无法使用,我这 ...

  7. python爱好者社区公众号历史文章合集_GitHub - acherie/weixin_crawler: 高效微信公众号历史文章和阅读数据爬虫powered by scrapy...

    What is weixin_crawler? weixin_crawler是一款使用Scrapy.Flask.Echarts.Elasticsearch等实现的微信公众号文章爬虫,自带分析报告和全文 ...

  8. python爱好者社区公众号历史文章合集_如何优雅的抓取微信公众号历史文章

    这是几天前在公众号上发的文章,主要讨论现在微信公众号文章抓取的一般思路以及优缺点,我不会讲技术细节,但我会分享别人已经开源的项目,你可以参考代码开了解其中的细节. 背景 微信公众号历史记录只可以通过客 ...

  9. python项目实践之微信公众号历史文章批量下载

    项目: 有的微信公众号文章经常会被删或者和谐,所以想有个工具能一键导出公众号文章,正逢有想学python的想法,找到下面这个python项目: vWeChatCrawl-小V公众号文章下载(开源版) ...

最新文章

  1. HDU1862 EXCEL排序【排序】
  2. 达夫设备(Duff‘s Device)
  3. 个人理财助手2009 V2.4
  4. Microsoft AI - Custom Vision in C#
  5. 有向图算法 PHP,科学网—一种可用于脑神经网络分析的有向图分解算法 第六稿 - 谢勤的博文...
  6. Sublime Text 使用介绍、全套快捷键及插件推荐
  7. Python常用小技巧(二)——打开图片
  8. 使用IE建多个会话的小技巧
  9. 【equals与==比较】String的两种拼接
  10. HTML5- Canvas入门(五)
  11. 数学分析 积分表及常用积分公式
  12. android svg 编辑器,Android svg 格式使用小结
  13. 刚开始接触编程也能轻松写的计算器代码(VS2019)(c语言)
  14. fseek函数、ftell函数和rewind函数
  15. 五胡十六国、东晋南北朝这280年历史,你知道多少?5000字带你看个清楚明白
  16. LORA 网关上电后对应配置 以及常用的AT指令
  17. python爬取微信公众号的几种方法_一种爬取微信公众号信息的方法与流程
  18. 借助Amazon EMR与外部KDC进行身份认证,有效集成业务场景
  19. 如何完整保存离线网页
  20. 杰理之脑连接样机蓝牙 , 开启音量同步 , 电脑无法大范围 量 调节音量【篇】

热门文章

  1. 利用matplotlib制作饼图
  2. visual assist 工具条不见了
  3. Netgear R6400v2 堆溢出漏洞分析与利用
  4. 微信小程序文字链接生成二维码,扫描识别二维码
  5. 优秀logo设计解析_优秀logo设计作品及寓意解析,国外精品logo设计图片分享
  6. 利用高德地图根据详细地址获取经纬度(工具类)
  7. Japanese Student Championship 2021 D - Nowhere P(递推 + 快速幂)
  8. 坐标范围计算显示缩放级别zoom自适应显示地图
  9. 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)
  10. 运放的 零点和极点快速找到