700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python爬虫获取文章的标题及你的博客的阅读量 评论量。所有数据写入本地记事本。最后

Python爬虫获取文章的标题及你的博客的阅读量 评论量。所有数据写入本地记事本。最后

时间:2022-11-16 20:36:42

相关推荐

Python爬虫获取文章的标题及你的博客的阅读量 评论量。所有数据写入本地记事本。最后

Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的!

完整代码在最后。依据阅读数量进行降序输出!

还有代码截图(适用于不知道为啥出现错误的朋友)

运行结果截图,写入后的记事本截图都有。

都在最后!

把链接换成你的就可以直接使用啦!

我是以我的主页作为列子来实践的!

注意链接格式呦!

还有,访问量是大于阅读量的。

访问量=阅读量+访问主页次数

因为别人可能访问你,但是没有阅读你的文章!

先说一段吧,诉诉苦水。也是我忙碌了好久才解决的!

1,第一个就是这个东西,会让你的数据错位。最后跟正确数据总有不同!

而且每个人的主页都有这个人的链接:

你说气人不!

但是,我是借助列表来存储的。

那么,这样就好啦:

让列表输出第二个到最后一个

实现这个功能,通过切片来实现

自己不会,所以耽误好久!通过切片来就好啦!

nn = nn[1:]

其他就没啥啦!就是这个错位,也不知道什么原因!

最后找到啦,解决也费了点时间!

我添加了一个对文件进行写操作,就是把东西写入到记事本里面!

(但是,要写入的记事本要和.py文件在同一个路径之下!)

我的都在桌面!

代码的讲解就放在代码块里吧!

ff = open('1.txt','a')#打开文件if n%10 == 0:#判断,进行多输入一个换行符号,为了美观!ff.write(titles[w]+' '+str(nn[w])+' \n\n')#写入你想写入的列表元素!else:ff.write(titles[w]+' '+str(nn[w])+' \n')#输入一个换行符号,为了美观!ff.close()#关闭文件!n += 1#不能一直换行呀,找个变量来!

其他的就是一些正则表达式啦,不会的就直接使用吧!

代码:

import requestsimport resum = 0pages = 10x = 1nn = []mm = []base_url = "/weixin_42859280/article/list/"print('\n-------------------------下面是原创的-------------------------\n')for x in range(pages):w = 0r = requests.get(base_url+str(x+1)+'?t=1&orderby=ViewCount')titles = re.findall(r'<span class="article-type type-.*?">\n.*?</span>\n(.*?)</a>', r.content.decode(), re.MULTILINE)visits = re.findall( r'<span class="read-num">阅读数:(.*?)</span>', r.content.decode())mm = re.findall( r'<span class="read-num">评论数:(.*?)</span>', r.content.decode())nn = [int(x) for x in visits] #将阅读数转换为数字nn = nn[1:]mm = mm[1:]n = 1for x, y, z in zip(titles, nn,mm):ff = open('1.txt','a')if n%10 == 0:ff.write(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w]+' \n\n')else:ff.write(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w]+' \n')ff.close()n += 1#if int(nn[w]) > 1000:#可以进行筛选输出!#if int(mm[w]) > 0:#可以进行筛选输出!print(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w])sum += int(nn[w])w+=1print('\n-------------------------下面是转载的-------------------------\n')pages = 11x = 1nn = []mm = []base_url = "/weixin_42859280/article/list/"for x in range(pages):w = 0r = requests.get(base_url+str(x+1)+'?t=2&orderby=ViewCount')titles = re.findall(r'<span class="article-type type-.*?">\n.*?</span>\n(.*?)</a>', r.content.decode(), re.MULTILINE)visits = re.findall( r'<span class="read-num">阅读数:(.*?)</span>', r.content.decode())mm = re.findall( r'<span class="read-num">评论数:(.*?)</span>', r.content.decode())nn = [int(x) for x in visits] #将阅读数转换为数字nn = nn[1:]mm = mm[1:]n = 1for x, y, z in zip(titles, nn,mm):ff = open('2.txt','a')if n%10 == 0:ff.write(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w]+' \n\n')else:ff.write(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w]+' \n')ff.close()n += 1#if int(nn[w]) > 1000:#可以进行筛选输出!#if int(mm[w]) > 0:#可以进行筛选输出!print(titles[w]+' 阅读数:'+str(nn[w])+' 评论数:'+mm[w])sum += int(nn[w])w+=1print("总阅读量:"+str(sum))

代码截图:

(1):

(2):

执行结果:

(1):

(2):

被写入文本截图:

原创:

转载:

OK,有问题欢迎来留言讨论!

关于这个方面,我写的还有别的爬虫:

功能和这个有不同!

/weixin_42859280/article/details/85175854

欢迎留言讨论!

Python爬虫获取文章的标题及你的博客的阅读量 评论量。所有数据写入本地记事本。最后输出你的总阅读量!

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