利用requests库模拟访问博客来提升文章阅读量

  • 一、概述
  • 二、简陋版程序
  • 三、升级版程序

一、概述

有的同学在csdn上写了文章之后,看着自己文章的阅读量,少的可怜,不禁希望能把阅读量快速涨上去,不为别的,就是为了看着更舒服。

除了通过正道提升文章质量,扩大影响力之外,也可以耍点小心机。因为通过实际操作可以发现,自己访问一篇文章,也可以使文章的阅读量上涨,不过,大概每30秒才会涨一次,在30秒内的多次重复访问不会提升阅读量。

似乎可以自己写一个工具来模拟博客访问,只要获取到每篇文章的url后,就好办了,直接用get方法访问即可,需要注意的是,get()方法必须带上headers参数,否则拿不到数据。于是,便有了本文。。。

二、简陋版程序

简陋版, 需要手动填写每篇文章的url地址

import requests
import time
import randomclass CsdnVistor():# 手动把每篇博文的url填好url_list = ['https://blog.csdn.net/hubing_hust/article/details/127882719','https://blog.csdn.net/hubing_hust/article/details/127882697']def __init__(self):passdef visit_page(self):all_article_urls = self.get_all_article_urls()while True:for url in all_article_urls:headers = self.get_headers()print(f'visiting article: {url}')print(f'using header: {headers}')try:res = requests.get(url, headers=headers)print(f'status code: {res.status_code}')except Exception as e:print('unexpected error happened')# 自己调整sleep时长time.sleep(5)def get_headers(self):user_agent_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]userAgent = random.choice(user_agent_list)headers = {'User-Agent': userAgent}return headersdef get_all_article_urls(self):'''获取所有的文章链接'''return self.url_listif __name__ == '__main__':visitor = CsdnVistor()visitor.visit_page()

三、升级版程序

简陋版的程序虽然也能工作,但是还不够智能,url需要手动维护,这太麻烦了。那么能不能自动获取呢?

我们从博客主页入手,尝试自动获取所有文章的url。

先通过浏览器打开个人主页试一下,发现并不是所有文章一次性展示全,默认只展现20篇文章,其余的都被隐藏了,需要对页面进行向下滚动,才会把隐藏的项展示出来。这一点,通过浏览器的调试界面可以清楚地看到。

浏览器中按F12打开调试界面,提取css选择器 article[class=“blog-list-box”] ,可以看到一开始并不能将全部结果展示出来,只有20条记录。

那么如何才能获取所有的文章呢?我们通过浏览器的F12调试界面的网络标签来一窥端倪。

先滚动页面,然后看看隐藏的项目是怎么被加载出来的。找出类型为json的GET方法,可以看到浏览器的请求过程。


从这里可以看出,页面展示内容是通过page和size来进行分页的,这就好办了,我们直接把这个url拿出来进行简单修改即可:

  • 可以将page指定为1,size指定为100(只要超过总的文章数即可)
  • 也可以保持size为20,然后我们访问的时候对page进行循环即可

我们选择简单粗暴的第一种方式,直接修改该url:

https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=100&businessType=blog&orderby=&noMore=false&year=&month=&username=hubing_hust

简单修改一下简陋版的程序,直接使用上面修改过的url进行访问,并把响应结果打印出来,试试效果,看看能不能取得预期效果

import requests
import time
import randomclass CsdnVistor():url_list = ['https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=100&businessType=blog&orderby=&noMore=false&year=&month=&username=hubing_hust']def __init__(self):passdef visit_page(self):all_article_urls = self.get_all_article_urls()for url in all_article_urls:headers = self.get_headers()print(f'using header: {headers}')try:res = requests.get(url, headers=headers)print(f'status code: {res.status_code}')# 打印出返回结果,看看是否能够将文章全部返回print(res.json())except Exception as e:print('unexpected error happened')def get_headers(self):user_agent_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]userAgent = random.choice(user_agent_list)headers = {'User-Agent': userAgent}return headersdef get_all_article_urls(self):'''获取所有的文章链接'''return self.url_listif __name__ == '__main__':visitor = CsdnVistor()visitor.visit_page()

运行测试程序,可以看到服务器返回的json串如下:

把返回的json串格式化一下:

可以看到完全符合预期,再把格式化后的json串用文本编辑器打开,统计一下数目对不对,确保万无一失

到这一步,基本就完成80%了,拿到了想要的数据,只需要稍微提取一下相应的字段,就可以得到全部文章的url链接:

import requests
import time
import randomclass CsdnVistor():blog_homepage = 'https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=100&businessType=blog&orderby=&noMore=false&year=&month=&username=hubing_hust'def __init__(self):passdef visit_page(self):all_article_urls = self.get_all_article_urls()while True:for url in all_article_urls:headers = self.get_headers()print(f'visiting article: {url}')print(headers)try:res = requests.get(url, headers=headers)print(res.status_code)except Exception as e:print('unexpected error happened')time.sleep(2)def get_all_article_urls(self):'''获取所有的文章链接'''all_article_list = []headers = self.get_headers()res = requests.get(url=self.blog_homepage, headers=headers)if (200 == res.status_code):# 若服务器成功响应,则获取响应内容并解析所有文章的urlfor item in res.json()['data']['list']:all_article_list.append(item['url'])# print(all_article_list)return all_article_listdef get_headers(self):user_agent_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]userAgent = random.choice(user_agent_list)headers = {'User-Agent': userAgent}return headersif __name__ == '__main__':visitor = CsdnVistor()visitor.visit_page()

至此,升级版自动刷阅读量的程序就完成了。执行程序就可以默默地刷阅读量了。

写在最后,虽然阅读量可以刷,但毕竟不具备真正意义上的影响力,写文章贵在坚持。

利用requests库模拟访问博客来提升文章阅读量相关推荐

  1. Jekyll博客统计访问量,阅读量工具总结--LeanCloud,不蒜子,Valine,Google Analytics

    我用 GitHub Pages搭建了jekyll的博客后,想要在页面上实现访问量的统计. 因为实在GitHub上搭建的静态博客,不能像WordPress一样可以操作php和数据库,自然只能借助第三方工 ...

  2. body添加代码 js_hexo 博客添加评论和阅读量

    说在最前面,最近刚发现一个好看的主题 Chic,然后果断就换了.效果很好.感谢作者.如果你们也喜欢的话,直接去GitHub项目,里边有安装文档,非常的简单. 附上我的博客地址,欢迎参观. 评论和文章阅 ...

  3. github项目怎么运行_利用 GitHub 从零开始搭建一个博客

    "NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...

  4. 利用 GitHub 从零开始搭建一个博客

    "NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...

  5. 如何利用 GitHub 从零开始搭建一个博客

    趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域名是 nightteam.cn,所以这里官方博客使用了二级域名 blo ...

  6. iOS学习资源汇总(开源项目、第三方库、技术博客等等)

    iOS学习资源汇总(开源项目.第三方库.技术博客等等) 字数3919 阅读10309 评论29 喜欢297 前言 Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你 ...

  7. wordpress python 采集_Python3利用Selenium3模拟wordpress博客登陆

    像小雨主要是玩 WordPress 的,很多网站也需要登陆后才可以进行下一步操作,所以我们单独来讲一讲如何利用 Python3 模拟 wordpress 博客登陆 首先还是安装 selenium 模块 ...

  8. 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...

    [爬虫]利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2) 第一篇( http://blog.itpub.net/26736162/viewspace-22865 ...

  9. 利用github搭建自己的博客分享

    安装和配置git 一.下载 msysgit是Git for Windows版,其Home Page为:http://msysgit.github.io/ 点击页面中"Download&quo ...

最新文章

  1. 自己写的一个测试函数执行效率的单元(test on Delphi 7)
  2. Mako 模板系统文档翻译(1) 使用基础
  3. (*p)++和*(p++)和*p++的区别
  4. BugkuCTF解题报告---WEB
  5. Hadoop大数据分布式文件系统hdfs的Java操作
  6. linux自动定时运行的脚本编写
  7. java ip吸附_IP层的封装(Java的InetAddress类的C++实现)
  8. 数据科学还是计算机科学_您应该拥有数据科学博客的3个原因
  9. Spring、Spring MVC、MyBatis整合文件配置详解
  10. Java类和对象 详解(一)
  11. 解决ASP.NET 安装完成报错500
  12. 网页中自动连续播放音乐文件的实现
  13. jupyter notebook修改黑色背景和字体大小
  14. C++题解:CSP迎国庆热身公益赛T2——猜数游戏(70分)
  15. Realtek 2.5G PCIE网卡 RTL8125B-CG支持PXE免驱简介
  16. Uboot DM9621网卡移植之路
  17. 抖音电商主播运营技巧话术脚本策划方案带货流程计划表格
  18. AndroidQ_默认数据连接的建立
  19. 数据分析-豆瓣电影Top250
  20. 用Weex实现新闻类app详情页是怎样一种体验?

热门文章

  1. python的中文社区
  2. Android平台招商银行“一网通”支付对接采坑记
  3. Enovia 用户操作手册
  4. 传iPhone8将搭载裸眼3D技术
  5. js php 获取时间倒计时_,JS实现获取时间和设置倒计时代码分享
  6. 【js学习笔记】去除省、市、区、特别行政区、自治区
  7. easyUI datebox 日期只显示年月及年月日切换的实现 js样式重新渲染加载
  8. Educational Codeforces Round 92 (Rated for Div. 2)题解(A-C)
  9. Pta题目集:汽车加油问题 (20 分)
  10. 养兔子c语言sdut,SDUT 养兔子