阅读量上万以后,就看不到自己博客的精确访问量了。写了一个利用urllib加上正则匹配的Python3脚本来获取阅读数和评论量。
【原理】
1. 页面标签内容获取
通过搜索含有 span和对应class 的标签内容来获取阅读量
这里用re.findall来匹配。
2. 博客首页的list页面
进入每个博客首页的网址其实都是 blog.csdn.net/+你的用户名+/article/list/1
我们把最后的list/1改成list/2就是第二页的数据,以此类推,直到获取不了阅读数的标签时,代表所有的页面都爬过了。
【代码】
# coding=utf-8
import re
import urllib.request
import urllib
account = "u014549283" # 输入你的账号
url = "https://blog.csdn.net/" + account + "/article/list/"
t = 0
read_num = 0
mark_num = 0
while 1:
t += 1
url_s = url + str(t)
content = urllib.request.urlopen(url_s).read()
content = content.decode('utf-8')
num = re.findall(r'<span class="read-num">(阅读数.*?)</span>', content) #获取阅读数
if len(num) <= 0:
break
for i in num:
read_num += int(re.findall('(\d+)', i)[0])
mark = re.findall(r'<span class="read-num">(评论数.*?)</span>', content) #获取评论数
for i in mark:
mark_num += int(re.findall('(\d+)', i)[0])
print("阅读数: " + str(read_num))
print("评论数: " + str(mark_num))