适用于python3版本。只需要修改第7行代码,“blog_url"
对原程序进行修改,采用随机的'User-Agent'访问网站
# -*- coding:utf-8 -*-
import urllib
import urllib.request
from urllib import request,parse
import time # 时间函数库,包含休眠函数sleep()
import random
blog_url =[
'https://blog.youkuaiyun.com/qq_30815237/article/details/86680694',
'https://blog.youkuaiyun.com/qq_30815237/article/details/86678667',
'https://blog.youkuaiyun.com/qq_30815237/article/details/86674681',
'https://blog.youkuaiyun.com/qq_30815237/article/details/86675564',
]
MY_USER_AGENT =["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",
]
#url = 'https://blog.youkuaiyun.com/qq_30815237/article/details/86657359' # 希望刷阅读量的文章的URL
#user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11' # 伪装浏览器,一旦被发现要及时更换
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搜索到该文章
dict ={
'name':'Tom'
}
data=bytes(parse.urlencode(dict),encoding='utf-8') # 将GET方法中待发送的数据设置为空,这几个函数大家可以查一下,很有意思
count = 0 # 初始化计数器
while 1:
user_agent = random.choice(MY_USER_AGENT)
url = random.choice(blog_url)
headers = {'User-Agent' : user_agent, 'Referer' : refererData} # 构造GET方法中的Header
req = urllib.request.Request(url, data, headers,method='POST') # 组装GET方法的请求
# 一旦开刷就停不下来
rec = urllib.request.urlopen(req) # 发送GET请求,获取博客文章页面资源
count += 1 # 计数器加1
print (count) # 打印当前循环次数
if count % 6: # 每6次访问为1个循环,其中5次访问等待时间为61秒,另1次为120秒
time.sleep(61) # 为每次页面访问设置等待时间是必须的,过于频繁的访问会让服务器发现刷阅读量的猥琐行为并停止累计阅读次数
else:
time.sleep(120)
from :https://blog.youkuaiyun.com/beyond9305/article/details/79746204
访问优快云的脚本-初代机
代码使用简介
在优快云判定为攻击时可以抛出异常,继续下一次访问,直到达到访问次数
随机睡眠时间,随机抽取访问列表,也可以通过列表内容控制访问博客
各类参数已经设置默认值,原始默认值运行结果良好
csdn.start()的maxTime参数是默认整个列表的访问次数,具体访问量为: maxTime*len(self.blog_url)
2017/08/05/ 更新
源码(适用于python2):
# - * - coding: utf - 8 -*-
#
# 作者:田丰(FontTian)
# 创建时间:'2017/7/17'
# 邮箱:fonttian@Gmaill.com
# 优快云:http://blog.youkuaiyun.com/fontthrone
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import urllib2
import socket
import time
import re
import random
blog_url =[
'http://blog.youkuaiyun.com/fontthrone/article/details/76675684',
'http://blog.youkuaiyun.com/FontThrone/article/details/76652772',
'http://blog.youkuaiyun.com/FontThrone/article/details/76652762',
'http://blog.youkuaiyun.com/FontThrone/article/details/76652753',
'http://blog.youkuaiyun.com/FontThrone/article/details/76652257',
'http://blog.youkuaiyun.com/fontthrone/article/details/76735591',
'http://blog.youkuaiyun.com/FontThrone/article/details/76728083',
'http://blog.youkuaiyun.com/FontThrone/article/details/76727466',
'http://blog.youkuaiyun.com/FontThrone/article/details/76727412',
'http://blog.youkuaiyun.com/FontThrone/article/details/76695555',
'http://blog.youkuaiyun.com/fontthrone/article/details/75805923',
]
class 优快云(object):
def __init__(self, blog_url=blog_url, csdn_url="http://blog.youkuaiyun.com/fontthrone"):
self.blog_url = blog_url
self.csdn_url = csdn_url
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept': 'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'gzip',
'Connection': 'close',
'Referer': None
}
def openCsdn(self):
req = urllib2.Request(self.csdn_url, headers=self.headers)
response = urllib2.urlopen(req)
thePage = response.read()
response.close()
pattern = "访问:<span>(\d+)次</span>"
number = ''.join(re.findall(pattern, thePage))
return number
def openBlog(self, link='http://blog.youkuaiyun.com/fontthrone/article/details/70556507', timeout=60, sleepTime=22,
maxTryNum=1):
tries = 0
maxNum = 0
# for tries in range(maxTryNum):
while tries < maxTryNum:
try:
socket.setdefaulttimeout
req = urllib2.Request(link, None, self.headers)
resp = urllib2.urlopen(req, None, timeout)
html = resp.read()
print "Success!\t",
print "Rest ", sleepTime, " seconds to continue...\n"
tries += 1
time.sleep(sleepTime)
except:
if tries < (maxTryNum):
maxNum += 1
print("Has tried %d times to access blog link %s, all failed!", maxNum, link)
continue
else:
print("Has tried %d times to access blog link %s, all failed!", maxNum, link)
break
def start(self, maxTime=100, blOpenCsdn=False, sleepTimeMin=15, sleepTimeMax=60, timeout=60):
# 在此处修改默认的参数,[sleepTimeMin,sleepTimeMax],为最小和最大睡眠时间,具体时间由随机数控制
# timeout 为url访问的最大等待时间
# 访问列表是随机访问的,maxTime 为访问列表的迭代次数,每次迭代的具体数量 = len(urlList),因为每次访问都是随机的,一轮结束后,可能并非是每一个链接都被访问了一遍,
for i in range(maxTime * len(self.blog_url)):
randomLink = random.choice(self.blog_url)
print 'This tinme the random_blog link is ', randomLink
if blOpenCsdn == True:
self.openCsdn()
self.openBlog(link=randomLink, sleepTime=random.uniform(sleepTimeMin, sleepTimeMax), timeout=timeout)
print "Now is " + str(i + 1) + " times to acess blog link\n"
csdn = 优快云()
inputMaxTime = input(u'请输入列表访问次数 :\n')
csdn.start(maxTime=int(inputMaxTime))
---------------------
作者:Font Tian
来源:优快云
原文:https://blog.youkuaiyun.com/fontthrone/article/details/75287311
版权声明:本文为博主原创文章,转载请附上博文链接!
from:https://blog.youkuaiyun.com/fontthrone/article/details/75287311