利用requests库模拟访问博客来提升文章阅读量
利用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库模拟访问博客来提升文章阅读量相关推荐
- Jekyll博客统计访问量,阅读量工具总结--LeanCloud,不蒜子,Valine,Google Analytics
我用 GitHub Pages搭建了jekyll的博客后,想要在页面上实现访问量的统计. 因为实在GitHub上搭建的静态博客,不能像WordPress一样可以操作php和数据库,自然只能借助第三方工 ...
- body添加代码 js_hexo 博客添加评论和阅读量
说在最前面,最近刚发现一个好看的主题 Chic,然后果断就换了.效果很好.感谢作者.如果你们也喜欢的话,直接去GitHub项目,里边有安装文档,非常的简单. 附上我的博客地址,欢迎参观. 评论和文章阅 ...
- github项目怎么运行_利用 GitHub 从零开始搭建一个博客
"NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...
- 利用 GitHub 从零开始搭建一个博客
"NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...
- 如何利用 GitHub 从零开始搭建一个博客
趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域名是 nightteam.cn,所以这里官方博客使用了二级域名 blo ...
- iOS学习资源汇总(开源项目、第三方库、技术博客等等)
iOS学习资源汇总(开源项目.第三方库.技术博客等等) 字数3919 阅读10309 评论29 喜欢297 前言 Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你 ...
- wordpress python 采集_Python3利用Selenium3模拟wordpress博客登陆
像小雨主要是玩 WordPress 的,很多网站也需要登陆后才可以进行下一步操作,所以我们单独来讲一讲如何利用 Python3 模拟 wordpress 博客登陆 首先还是安装 selenium 模块 ...
- 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...
[爬虫]利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2) 第一篇( http://blog.itpub.net/26736162/viewspace-22865 ...
- 利用github搭建自己的博客分享
安装和配置git 一.下载 msysgit是Git for Windows版,其Home Page为:http://msysgit.github.io/ 点击页面中"Download&quo ...
最新文章
- 自己写的一个测试函数执行效率的单元(test on Delphi 7)
- Mako 模板系统文档翻译(1) 使用基础
- (*p)++和*(p++)和*p++的区别
- BugkuCTF解题报告---WEB
- Hadoop大数据分布式文件系统hdfs的Java操作
- linux自动定时运行的脚本编写
- java ip吸附_IP层的封装(Java的InetAddress类的C++实现)
- 数据科学还是计算机科学_您应该拥有数据科学博客的3个原因
- Spring、Spring MVC、MyBatis整合文件配置详解
- Java类和对象 详解(一)
- 解决ASP.NET 安装完成报错500
- 网页中自动连续播放音乐文件的实现
- jupyter notebook修改黑色背景和字体大小
- C++题解:CSP迎国庆热身公益赛T2——猜数游戏(70分)
- Realtek 2.5G PCIE网卡 RTL8125B-CG支持PXE免驱简介
- Uboot DM9621网卡移植之路
- 抖音电商主播运营技巧话术脚本策划方案带货流程计划表格
- AndroidQ_默认数据连接的建立
- 数据分析-豆瓣电影Top250
- 用Weex实现新闻类app详情页是怎样一种体验?
热门文章
- python的中文社区
- Android平台招商银行“一网通”支付对接采坑记
- Enovia 用户操作手册
- 传iPhone8将搭载裸眼3D技术
- js php 获取时间倒计时_,JS实现获取时间和设置倒计时代码分享
- 【js学习笔记】去除省、市、区、特别行政区、自治区
- easyUI datebox 日期只显示年月及年月日切换的实现 js样式重新渲染加载
- Educational Codeforces Round 92 (Rated for Div. 2)题解(A-C)
- Pta题目集:汽车加油问题 (20 分)
- 养兔子c语言sdut,SDUT 养兔子