python爬虫视频教程博客园_Python爬虫实战-统计博客园阅读量问题

写这次博客其实事出有因,前几天呢,一个非常优秀的学姐在QQ空间里晒了自己的CSDN博客的总阅读量,达到了7万+,很厉害了,而且确实她的博文都是精髓,我就也想来看看我的博客总阅读量了,看看什么时候能达到人家的高度,但是博客园偏偏就没有这个功能(CSDN是可以直接在首页看的)。于是乎,想尽一切办法,要来统计阅读量了,看看别人写的使用其他的统计工具,把代码放在博客园的公告栏,我也就放了个站长联盟:

坐在电脑前,发了一会呆,突然,想起来,哎,这下学的Python爬虫或许可以派上用场了,于是乎,我就开始了愉快的爬虫统计阅读量之路,其实也很简单,抓取博客园博文的每一页,然后利用xpath解析出阅读量,然后进行加和就行了,为了做持久化,随时看看阅读量的增加情况,我就写入了一个文本文件,每次就两行内容,查询时间和总阅读量,当然,我在控制台可以清晰的查看每页每条博文的阅读量。这下可总算是把问题解决了,182篇博文,总阅读量:35205,差不多是学姐的一半,继续努力,看明年毕业时能不能达到学姐的高度,下面是最终的代码,当然还有很多不足之处,希望大家多多指教

#导入需要的模块

import time

import requests

from lxml import etree

#进行UA伪装

headers={

"User-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"

}

#创建文件,存储爬到的数据,做持久化,以追加的方式打开,可读可写

fp=open('./counter.txt','a+',encoding = 'utf-8')

#记录当前查询时间

select_time=time.strftime('%Y.%m.%d %H:%M:%S ',time.localtime(time.time()))

fp.write('查询的时间为:'+select_time+'\n')

def spider():

#总阅读量

counts=0

#分页爬取数据加和

for page_num in range(1,20):

#设置url

url="https://www.cnblogs.com/andrew3/default.html?page=%d"

new_url=format(url%page_num)

#获取页面数据

page_text=requests.get(url=new_url,headers=headers).text

tree=etree.HTML(page_text)

#解析数据,得到每页每篇博文的阅读量

count_list=tree.xpath('//div[@class="forFlow"]/div/div[@class="postDesc"]/span[1]/text()')

print(count_list)

#每一页的阅读量

sum=0

#计算每页的阅读量

for i in range(len(count_list)):

sum+=int(count_list[i][3:len(count_list[i])-1])

#计算总阅读量

counts+=sum

#打印每页每篇博文的阅读量

print(sum,counts)

#总阅读量持久化

fp.write("总阅读量为:%s" % counts + '\n')

#关闭文件,释放资源

def close_file():

fp.close()

def main():

spider()

close_file()

if __name__ == '__main__':

main()

1350895-20200526235600298-1024249865.png

1350895-20200526235655764-1406462754.png

来源:https://www.cnblogs.com/andrew3/p/12969703.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值