前言
Python中能够爬虫的包还有很多,但requests号称是“让http服务人类”...口气不小,但的确也很好用。
本文是博客里爬虫的第一篇,实现一个很简单的功能:获取自己博客主页里的访问量。
当然了,爬虫一般肯定逃不掉要用正则表达式(regular Expression),因此Python的re包也是十分常用的。
分析
博客园好像目前没有一个页面能访问完某用户所有随笔的功能,每一页只能显示最近十篇...因此需要使用一个循环,每次打开一个page,直到打开之后为空。
当输入https://www.cnblogs.com/maoerbao/default.HTML?page=1时:
而再随便输一个数,比如输入page=4时,页面为空:
那么我们就提取每一页的“阅读 ( )”里的内容即可。当提取不到信息时,结束循环。
然后发现每一篇的阅读量表现为“阅读 (”+数字,注意这里的括号之前有空格,括号是英文,正则表达式需要转义,数字的位数不确定。
正则表达式中,数字用‘\d‘描述即可,
出现0-n次用‘*‘,出现0-n次用‘+‘,出现0-1次用‘?‘,
在这里,“阅读”后面必定有数字,因此用‘*‘或‘+‘皆可以。
代码
import requests import reimport datetimeN=[]i=1while True: url = ‘https://www.cnblogs.com/maoerbao/default.HTML?page=‘+str(i) f = requests.get(url).text a = re.findall(‘阅读 \(\d+‘,f) if len(a)==0: break for j in a: N.append(int(j[4:])) i+=1print(‘我的博客总量:{}\n‘.format(len(N)))print(‘总阅读量:{}‘.format(sum(N)))print(‘最大单篇阅读量:{}‘.format(max(N)))t = datetime.datetime.Now().strftime(‘%Y-%m-%d %H:%M:%s‘)print(‘\n统计时间:‘+t)
运行结果
总结以上是内存溢出为你收集整理的Python网络数据采集(1):博客访问量统计全部内容,希望文章能够帮你解决Python网络数据采集(1):博客访问量统计所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)