PYTHON实现刷流量工具

来源:互联网 发布:wrap相类似的软件 编辑:程序博客网 时间:2024/05/01 17:45

转载请注明http://blog.csdn.net/boksic 如有疑问欢迎留言

PYTHON作为网络操作很灵活的脚本语言,理应实现起来很容易,尝试了下具体的实现,url为目标地址

import urllib2url = 'http://blog.csdn.net'file = urllib2.urlopen(url)content = file.read()
看来网站已经禁止了单纯测试的访问

import urllib2def test():    url = 'http://blog.csdn.net'    req=urllib2.Request(url)     req.add_header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")     file = urllib2.urlopen(req)    content = file.read()
加上HTTP头,被识别为正常浏览器后可以正常访问了
同时为了测试效率把其定义为一个函数test()

用timeit模块来测试其效率

t=timeit.Timer("test()","from __main__ import test")print t.timeit(10)/10

测试50次,平均每次0.42秒

content = file.read()这句其实在刷访问量时有请求就够了。把这句注释掉后平均每次0.26秒.


为了加快效率,尝试采用多线程的方法来请求页面,完整代码为

import urllib2import timeitimport thread import timei = 0mylock = thread.allocate_lock()def test(no,r):    global i    url = 'http://blog.csdn.net'    for j in range(1,r):        req=urllib2.Request(url)         req.add_header("User-Agent","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")         file = urllib2.urlopen(req)        print file.getcode();        mylock.acquire()        i+=1        mylock.release()            print i;    thread.exit_thread()def fast():        thread.start_new_thread(test,(1,50))        thread.start_new_thread(test,(2,50)) fast()time.sleep(15)

经测试,超过两个线程以上服务器就会出现503错误,所以2个线程刚好








原创粉丝点击