采用随机的'User-Agent'提高博客的访问量

适用于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值