python实践—网络刷博器
为什么要写这篇博客,是因为最近刚开始学习python没多久,非常巧的是有个朋友问我,说你既然搞IT,能不能帮我刷访问量,我当时犹豫了一下,说试试,然后就回去捣鼓了一下,但是在这里笔者想说一句,并非所有的博客都能刷,最后也没帮我朋友刷成功,因为有些博客的访问量是要根据IP地址来规定的,所以需要频繁地更换网络环境,其实就是出口路由的ip地址要变化才有用,但是有些博客是可以的,比如搜狐的博客,本篇博文就以搜狐的博客为例。
首先声明一点,没有想恶意攻击谁,也没有想弄虚作假,仅仅想展示python的强大,我们是奉公守法的网络良民。
第一步,打开某篇搜狐的博文,观察阅读量
现在阅读量为1033,然后我们在新建网页中打开
发现阅读量变为1034了,这就说明该博客只要打开一次,阅读量就会加1
第二步,设计python的代码的思路
其实代码只要能完成以下两个工作就可以
(1)在新建网页中打开不停地打开该博文,直到达到一定次数就不再打开,假设打开次数为n
(2)第一步执行完毕以后,就立即关闭浏览器,然后再打开浏览器,再重复第一步,如此循环多次,假设循环次数m
那么该博客阅读量就增加了m*n次,在这里笔者想提醒大家一句,为什么要在打开一定次数的网页的时候一定要关闭浏览器,我们都知道,当我们不断打开网页,CPU内存会被不断占用,如果不关闭,会造成内存被耗尽,导致死机,所以在打开一定的网页次数就要关闭浏览器!!!在这里我们使用dos环境中taskkill命令来结束进程。
在cmd中查看taskkill命令详情
C:Users羊羊>taskkill/?
看到如下结果
C:Users羊羊>taskkill/? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F] 描述: 使用该工具按照进程 ID (PID) 或映像名称终止任务。 参数列表: /S system 指定要连接的远程系统。 /U [domain]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /FI filter 应用筛选器以选择一组任务。 允许使用 "*"。例如,映像名称 eq acme* /PID processid 指定要终止的进程的 PID。 使用 TaskList 取得 PID。 /IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来 指定所有任务或映像名称。 /T 终止指定的进程和由它启用的子进程。 /F 指定强制终止进程。 /? 显示帮助消息。 筛选器: 筛选器名 有效运算符 有效值 ----------- --------------- ------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号。 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain]user MODULES eq, ne DLL 名称 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 说明 ---- 1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。 2) 远程进程总是要强行 (/F) 终止。 3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 例如: TASKKILL /IM notepad.exe TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM cmd.exe /T TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITYSYSTEM" /IM notepad.exe TASKKILL /S system /U 域用户名 /FI "用户名 ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*" C:Users羊羊>
例如笔者打开了迅雷这个软件,可以用taskkill来杀死这一进程,迅雷的程序名为Thunder.exe,结果如下
C:Users羊羊>taskkill /F /IM Thunder.exe 成功: 已终止进程 "Thunder.exe",其 PID 为 13788。 C:Users羊羊>
我们发现刚刚打开的迅雷就被关闭了。
所以我们使用taskkill来关闭浏览器,python代码如下
import webbrowser as web import time import os import random count = random.randint(3,5) j = 0 while j < count: i = 0 while i <= 5: web.open_new_tab('http://aqtyhj.blog.sohu.com/321768697.html') i = i + 1 time.sleep(1.0) else: os.system('taskkill /F /IM Opera.exe') print j, 'times closing browser' j = j + 1
在这里,我们仍需要引入第三方函数库httplib2,不然有些函数不能调用,关于httplib2的安装,可以参考笔者的这篇博客,这里就不再赘述。
webbrowser函数的作用是打开链接地址
os是系统自带函数库,目的是为了引入taskkill关闭浏览器
time函数是为了每打开一个网页需要一定的时间延迟,给CPU休息的时间,这里为1s
random是生成随机数,这里的范围是在3~5范围内生成一个随机数,也就是m的次数,而n的次数为i+1,为什么要加1,是因为i从0开始,所以5+1一共就是6次
接下来打开IDLE(python GUI)
点击File,再点击New File,将代码粘贴上去,如下图
再点击File,命名保存
笔者建议保存在python2.7的目录下,就是python的安装目录,保存成功后,点击Run运行代码,由于该过程是动态的,不好捕捉,但是可以在IDEL中看到结果,也可以观察博客的阅读量
如上图,阅读量应该增加了3*6次,我们看看结果
好像多了一次,因为在这一过程中可能有其它的访客浏览过。