社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib # Python中的cURL库
import urllib2 # Python中的cURL库
import time # 时间函数库,包含休眠函数sleep()
url = 'http://blog.csdn.net/csdnzouqi/article/details/51491786' # 希望刷阅读量的文章的URL
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' # 伪装成Chrome浏览器
refererData = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=csdn%20%E6%80%9D%E6%83%B3%E7%9A%84%E9%AB%98%E5%BA%A6%20csdnzouqi&oq=csdn%20%E6%80%9D%E6%83%B3%E7%9A%84%E9%AB%98%E5%BA%A6&rsv_pq=fe7241c2000121eb&rsv_t=0dfaTIzsy%2BB%2Bh4tkKd6GtRbwj3Cp5KVva8QYLdRbzIz1CCeC1tOLcNDWcO8&rqlang=cn&rsv_enter=1&rsv_sug3=11&rsv_sug2=0&inputT=3473&rsv_sug4=3753' # 伪装成是从baidu.com搜索到的文章
data = '' # 将GET方法中待发送的数据设置为空
headers = {'User-Agent' : user_agent, 'Referer' : refererData} # 构造GET方法中的Header
count = 0 # 初始化计数器
request = urllib2.Request(url, data, headers) # 组装GET方法的请求
while 1: # 一旦开刷就停不下来
rec = urllib2.urlopen(request) # 发送GET请求,获取博客文章页面资源
page = rec.read() # 读取页面内容到内存中的变量,这句代码可以不要
count += 1 # 计数器加1
print count # 打印当前循环次数
if count % 6: # 每6次访问为1个循环,其中5次访问等待时间为31秒,另1次为61秒
time.sleep(31) # 为每次页面访问设置等待时间是必须的,过于频繁的访问会让服务器发现刷阅读量的猥琐行为并停止累计阅读次数
else:
time.sleep(61)
print page # 打印页面信息,这句代码永远不会执行
将以上代码保存为脚本 spider.py,通过 Python 解释器运行便实现了给博客指定文章刷阅读量的效果。
需要注意的是 if count % 6 这个条件语句可以替换为其它逻辑的代码,比如在 15~30秒 这个范围内给每次访问设定随机的睡眠时间,目的是避免过于明显的访问规律。
过于频繁的访问会被服务器识别到,并使其停止对文章阅读量的累加。所以每次访问的睡眠时间虽可以酌情设置,但不能太短。
另外,有的网站对于访问者的 IP 也有检测,对于这种情况我们可以构建一个代理服务器 IP 池,每次访问时都重新从 IP池 中选取一个新的代理服务器。
【实战效果】
实战效果还是不错的,因为我在脚本中为每次访问设置了较长的睡眠时间,所以服务器并没有发现我这种实验性的猥琐行为,目标博文阅读量成功地被我从 51次 刷到了 1000+。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!