python | 分析下2023年你写的文章吧
前言
这里先贴一下代码的执行效果:
文章源数据收集
在主页中,选择文章,就可以看到此前写过的所有文章,截图如下:
最后在网页上按下F12
,即可进入到调试模式,选择网络,在搜索框中输入query_list
,图示如下:
最后我们使用滚轮往下滑动文章,即可看到请求的数据信息,例如:
将每个响应的请求都复制到文件files.txt
中,我们即可得到一份这样的数据:
代码编写
data
中的每一个列表,表示一篇文章,熟知的作者信息是被放到author_user_info
中,其中截图如下:
而文章的基本信息是被存储在article_info
中的,包括阅读量、点赞量、留言量 和 收藏量等等,这个只要结合文章的数值进行搜索记了,截图如下:
这里不啰嗦了,整个分析代码已经写好了,代码整理如下:
import json
import time
timeStart = "2023-01-01"
timeEnd = "2024-01-01"
count = view_count = digg_count = comment_count = collect_count = 0
maxCollect = maxComment = maxDigg = maxView = [0,""].copy()
timeStartUnix = time.mktime(time.strptime(timeStart,"%Y-%m-%d"))
timeEndUnix = time.mktime(time.strptime(timeEnd,"%Y-%m-%d"))
with open("files.txt",encoding="utf-8") as f:
while True:
line = f.readline()
if len(line) == 0:
break
resultData = json.loads(line)
for i in resultData["data"]:
article_c = int(i["article_info"]["ctime"])
if article_c >= timeStartUnix and article_c < timeEndUnix:
userName = str(i["author_user_info"]["user_name"])
count = count + 1
print("%d: %s 《%s》 " %(count,time.strftime("%Y-%m-%d", time.localtime(int(article_c))) ,i["article_info"]["title"]))
view_count = view_count + int(i["article_info"]["view_count"])
digg_count = digg_count + int(i["article_info"]["digg_count"])
comment_count = comment_count + int(i["article_info"]["comment_count"])
collect_count = collect_count + int(i["article_info"]["collect_count"])
if maxCollect[0] < int(i["article_info"]["collect_count"]):
maxCollect = [int(i["article_info"]["collect_count"]),i["article_info"]["title"]]
if maxComment[0] < int(i["article_info"]["comment_count"]):
maxComment = [int(i["article_info"]["comment_count"]),i["article_info"]["title"]]
if maxDigg[0] < int(i["article_info"]["digg_count"]):
maxDigg = [int(i["article_info"]["digg_count"]),i["article_info"]["title"]]
if maxView[0] < int(i["article_info"]["view_count"]):
maxView = [int(i["article_info"]["view_count"]),i["article_info"]["title"]]
print("%s,在 %s 到 %s 间,你一共写了%d篇文章,阅读量为:%d,点赞量为:%d,留言量为:%d,收藏量为: %d" %(userName,timeStart,timeEnd,count,view_count,digg_count,comment_count,collect_count))
print("分别统计信息为:")
print("阅读量最高的文章是:《%s》,阅读量为:%d" %(maxView[1],maxView[0]))
print("点赞量最高的文章是:《%s》,点赞量为:%d" %(maxDigg[1],maxDigg[0]))
print("留言量最高的文章是:《%s》,留言量为:%d" %(maxComment[1],maxComment[0]))
print("收藏量最高的文章是:《%s》,收藏量为:%d" %(maxCollect[1],maxCollect[0]))
总结
本人纯python
小白,混吃屌丝运维,基础非常差,不会写爬虫,如果阁下会写爬虫的话,可以将数据写入到文件files.txt
中,这样的话,就避免了利用浏览器进行数据的收集工作了。但是,利用浏览器调试工具收集数据,其实也不是很慢。一个人一年才写多少文章啊,一个请求中会包含10篇文章,就算3天写一篇文章,那也就是10个请求的事情。
转载自:https://juejin.cn/post/7309693162368581683