博客园文章发布时间统计

我只是想看一下大家都是啥时候发博客而已!!

第一步:

把 https://www.cnblogs.com/ 的文章列表先拿下来,只有200页,时间范围是一个月多几天,不知道是不是全部的,就这样吧

代码很简单:https://github.com/dytttf/little_spider/blob/master/cnblogs/blog_index_spider.py

数据格式如下:

data = {
  "https://www.cnblogs.com/xxx.html": {
    "url": "https://www.cnblogs.com/xxx.html",
    "title": "xxx",
    "summary": "xxx",
    "author": "xxx",
    "author_url": "https://www.cnblogs.com/xxx/",
    "ctime": "2019-11-11 11:11"
  }
}

第二步:

使用pandas把数据都加载进来

data_list = list(data.values())
df = pd.DataFrame(data_list)

第三步:

转换一下发布时间格式,然后去掉一下30天之外的数据

# 转换时间格式
df["ctime"] = pd.to_datetime(df["ctime"])
# 去掉30天之外的
df = df[df["ctime"] > df["ctime"].max() - datetime.timedelta(days=30)]

第四步:

获取一下小时分布,画个图看看

df["hour"] = df["ctime"].apply(lambda x: x.hour)
hour_counter = df["hour"].value_counts().sort_index()
hour_counter.plot.bar()
plt.show()

有点小惊讶,早上竟然这么多。我一直以为晚上会是高峰,看来大家白天很闲啊。不过也有可能是昨天晚上写好了,没来得及发吧

本想就此结束,不过图都开始画了,在多画几张吧

第五步:

不知道一个月内哪天发布的博客比较多,看一下

df["day"] = df["ctime"].apply(lambda x: x.day)
day_counter = df["day"].value_counts().sort_index()
day_counter.plot.bar()
plt.show()

好吧,这个好像还是挺平均的,没啥可看的

第六步:

看一下有没有博客狂人

author_counter = df["author"].value_counts()[:100]
author_counter.plot.bar()
# 输出前五
print(author_counter[:5])
plt.show()

好像也没有特别多的,看一下前5都是谁吧

"""
阿里巴巴云原生     22
极客挖掘机       22
程序新视界       20
chen_hao    16
赐我白日梦       13
"""

第七步:

看一下大家都在发啥类型的帖子,对标题分词做个词云

for cat in ["title", "summary"]:
    text = re.sub("[^\w]", " ", " ".join(list(df[cat])))
    # 清理空格和单字
    word_counter = Counter([x for x in jieba.cut(text) if len(x.strip()) > 1])
    top_30 = word_counter.most_common(30)
    # 词云
    title_word_cloud = WordCloud(
        background_color="white", font_path="simsun.ttf"
    ).generate_from_frequencies(dict(top_30))
    plt.imshow(title_word_cloud)
    plt.axis("off")
    plt.show()

标题词云:

ps:

1、身为Pythoneer,很不服Java

2、如何?大家很喜欢用问句作为标题?

3、一系列各种实现、源码、解析、框架、模式、原理。感觉学不过来了

摘要词云:

ps:

1、我们使用一个啥?可以实现啥?博主都很喜欢用我们来拉近距离:)

词云还是挺好玩的。。。

最后附上代码:

https://github.com/dytttf/little_spider/blob/master/cnblogs/analysis.py

原文地址:https://www.cnblogs.com/dyfblog/p/11723571.html

时间: 2024-10-07 12:07:53

博客园文章发布时间统计的相关文章

利用GitHook实现博客园文章的备份和自动发布

在使用vscode中的writecnblog插件时有所启发,链接: 用vscode写博客和发布,大家可以看看. 我们在本地可以利用git轻松实现博客园文章的历史记录管理,利用博客园的MetaWeblog API 别人的介绍编写小程序来自动化上传文章(参考插件). 更进一步,将这个程序放到githook里,每次commit时自动执行,就实现了现博客园文章的备份和自动发布. 这样,你每次发布文章的步骤就简化为: 编写本地一个Git仓库内的xx.md文件 commit更改 程序会自动获取diff,然后

利用GitHook实现博客园文章的备份和自动发布.md

在使用vscode中的writecnblog插件时有所启发,链接: [用vscode写博客和发布](https://www.cnblogs.com/caipeiyu/p/5475761.html),大家可以看看. 我们在本地可以利用git轻松实现博客园文章的历史记录管理,利用博客园的MetaWeblog API [别人的介绍](https://www.cnblogs.com/caipeiyu/p/5354341.html)编写小程序来自动化上传文章(参考插件). 更进一步,将这个程序放到gith

简单爬虫-抓取博客园文章列表

原文:简单爬虫-抓取博客园文章列表 如果使用对方网站数据,而又没有响应的接口,或者使用接口不够灵活的情况下,使用爬虫在合适不过了.爬虫有几种,对方网站展示形式有几种都是用分析,每个网站展示有相似的地方,有不同的地方. 大部分使用httpRequst就能完成,不管是否添加了口令.随即码.请求参数.提交方式get或者post.地址来源.多次响应等等.但是有些网站使用ajax如果是返回json或固定格式的也好处理,如果是很复杂的,可以使用webbrower控件进行抓取,最后正则解析,获取所需要的数据即

Python抓拍博客园文章,并存入数据库

在学习python后,想做个爬虫,抓取博客园文章. 爬虫思路很简单,模拟浏览器访问网页,得到网页的html代码,再根据页面结构,从html中提取自己需要的内容. 本文代码主要分为3个部分: 1.读取博客园首页文章链接. https://www.cnblogs.com/是博客园的首页,列出了文章,分析页面内容,读取文章的链接. 这需要看页面的结构,可以使用浏览器,再浏览页面代码,选择元素,看界面上选中哪一部分,根据自己的需要,可以看到对应模块的代码. 2.对于每个页面,分析页面内容. 这需要看页面

博客园cnblog发布word

博客园cnblogs发布方法 ? ? ? ? ? ? 自行创建账号 ? 不解释 ? ? ? ? ? ? ? Success

博客园的IOS客户端“我的博客园”已发布到AppStore

已知Bug: 评论博客提示有问题,发布成功,提示发布失败了. 功能介绍: 博客列表浏览:博客内容查看,博客评论查看,发评论,收藏/取消收藏博客,浏览作者的其他博客. 新闻列表浏览:新闻内容查看,查看新闻评论. 个人中心:显示我的博客显示,发布博客:闪存功能. 用户登录,注销: 设置:app的设置.隐藏底栏,离线数据,双击全屏等等设置. App Store地址:https://itunes.apple.com/cn/app/wo-de-bo-ke-yuan/id873544434 iTunes截图

尝试博客园快捷发布工具

博客园快捷发布工具 一.准备环境 安装.NET Core SDK: https://www.microsoft.com/net/learn/get-started/windows .NET Core SDK 2.1:点我下载 运行本程序必须需要.NET Core 2.1或者更高版本 二.第一种安装方法 .NET Core Global Tool 是 .NET Core 2.1的新特性,类似于NPM,可以直接从NUGET安装我们编写的工具. 1.安装 打开cmd,执行命令,便可以直接安装本工具:

博客园快捷发布工具

博客园快捷发布工具 一.准备环境 安装.NET Core SDK: https://www.microsoft.com/net/learn/get-started/windows .NET Core SDK 2.1:点我下载 运行本程序必须需要.NET Core 2.1或者更高版本 二.第一种安装方法 .NET Core Global Tool 是 .NET Core 2.1的新特性,类似于NPM,可以直接从NUGET安装我们编写的工具. 1.安装 打开cmd,执行命令,便可以直接安装本工具:

实用scrapy批量下载自己的博客园文章

首先,在items.py中定义几个字段用来保存网页数据(网址,标题,网页源码) 如下所示: import scrapy class MycnblogsItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() page_title = scrapy.Field() page_url = scrapy.Field() page_html = scrapy.Field() 最重要的是我