300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 简单CSDN爬虫 实现博客访问量记录

简单CSDN爬虫 实现博客访问量记录

时间:2021-11-28 18:19:01

相关推荐

简单CSDN爬虫 实现博客访问量记录

看到别人用Java写了一个CSDN爬虫,监控访问量。

看完之后就写了一个Python的。

Python小白,代码有点垃圾,大神莫喷。

要爬CSDN,首先要学会违装成浏览器。

再用正则表达式就可以了。

先上效果图:

思路:

首先爬取目前的访问量,积分和排名,然后写到文件。访问量增加情况要保存上一次的访问量,相减就可以了

架构:

在当前目录新建一个Data文件夹,用于保存数据

在在下面建一个rank的文件夹,用于记录每一天的具体访问情况

还有有个last.txt文件,用于保存上一次的访问量。

在在rank文件夹下面建文件,保存每天的访问记录。

下面直接上代码吧:

#coding=utf-8import time,urllib2,re,os,thread,time,datetimedef fun():headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'}req = urllib2.Request('/hurmishine?viewmode=contents', headers=headers)response = urllib2.urlopen(req)html = response.read()#print htmlvisitcount = r'<li>访问:<span>(\d+)次</span></li>' cnt=re.findall(visitcount,html);print cnt[0]times=int(cnt[0])visitcount = r' <li>积分:<span>(\d+)</span> </li> ' cnt=re.findall(visitcount,html); #print cnt[0]grade=cnt[0]visitcount = r'<li>排名:<span>第(\d+)名</span></li>'cnt=re.findall(visitcount,html);rankk=cnt[0]#print cnt[0]t = datetime.datetime.now()t=str(t)print t[:-7]today=str(t[:10])t=t[:-7]if os.path.exists('data')==False:os.makedirs('data')File=open('data/last.txt','w')File.write('0')File.close()last = open("data/last.txt").read()#print file.split(',')last_cnt=int(last)#print last_cntif os.path.exists('data/rank')==False:os.makedirs('data/rank')if os.path.exists('data/rank/'+today+'.txt')==False:rank=open('data/rank/'+today+'.txt','w')rank.write('--------------------------------------------------------------\n')rank.write('|时间\t\t\t|访问量\t|积分\t|排名\t|访问量增加 |\n')rank.write('|------------------------------------------------------------|\n')rank.close()if times>=last_cnt+10:File=open('data/last.txt','w+')File.write(str(times))File.close()deta=times-last_cntr=open('data/rank/'+today+'.txt','a')r.write('|'+t+'\t|'+str(times)+'\t|'+grade+'\t|'+rankk+'\t|'+str(deta)+'\t|\n')r.write('|------------------------------------------------------------|\n')r.close()if __name__=='__main__':while True:fun()time.sleep(1)

代码写好了,每次用IDLE运行不是很方便,那就编译成exe文件吧。

pyInstaller 可以将.py文件编译成.exe文件。

pyInstaller 免积分下载地址:/detail/hurmishine/9672939

其他的地方找不到,CSDN要积分,我上传的就不要积分。

另外还要安装pywin32,那个网上自己找吧。

尊重原创,转载请注明出处:http://blog.csdn.net/hurmishine

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。