用python实现刷点击率的示例代码


Posted in Python onFebruary 21, 2019

背景

同事的老爸参加微信的一个活动,需要刷点击率,因此,写了一个程序助之。

准备

微信活动也是有真实地址的。

通过mitmproxy(man in the middle proxy)的方式,可以获取微信获取网页的真实地址(url)。

完整可运行代码

import os
import time
import argparse
import platform

def visit_win(url, times, duration):
  import urllib2
  def _visit_win():
    try:
      s = urllib2.urlopen(url).read()
    except urllib2.HTTPError,e:
      print (e.code)
  for i in range(times):
    _visit_win()
    print("{} Done!".format(i+1))
    #do not use duration in win

def visit_linux(url, times, duration):
  import subprocess
  cmd = "curl {}".format(url)
  for i in range(times):
    subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)
    print("{} Done!".format(i+1))
    time.sleep(duration)

def parse_input():
  input_parser = argparse.ArgumentParser()
  input_parser.add_argument("--url",'-u', help="the url your need to visit")
  input_parser.add_argument("--times",'-t', type=int, default=10, help="how many times you need to visit")
  input_parser.add_argument("--duration",'-d', default=0.5, type=float, help="the duration between two visits")
  input_args = input_parser.parse_args()
  url = input_args.url
  times = input_args.times
  duration = input_args.duration
  return url, times, duration 

def main():
  url, times, duration = parse_input()
  if platform.system().lower() == 'linux':
    visit_linux(url, times, duration)
  else:
    visit_win(url, times, duration)
  print("My evil job is finished!")

if __name__ == '__main__':
  main()

我的说明

跨平台

linux通过curl可以非常快速的访问。

但是同事不懂linux,只能通过urllib库写个跨平台的实现

可扩展性

为了增加程序的通用性,加入argparse库,通过程序入参实现灵活应用。

**注意:

推荐使用argparse,WXCOP的很多同学还是使用老的OPTPARSE库,argparse是用来替代OPTPARSE库的(来自官方)**

速度

使用subprocess库会比os.system的方式快,因为,它会fork一个进程,而os.system是阻塞(等待网页返回很慢),速度快很多。

另外,保留了linux的curl方式,它比urllib库要快

函数内的函数

visit_win里还有一个只能内部使用的_visit_win

这样可以表明这个函数的作用域

库的导入

没有呆板的在开头导入所有需要的库,而是根据操作系统,在需要时,才导入特定的库

期望大家的优化

代码里留了优化空间,例如使用线程的方式加快urllib的访问速度等

最后

我写python好几年了,有很多积累,欢迎python爱好者一起交流。

以上这篇用python实现刷点击率的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下线程之间的共享和释放示例
May 04 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
python2.7到3.x迁移指南
Feb 01 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python3.6简单反射操作示例
Jun 14 Python
python3.5基于TCP实现文件传输
Mar 20 Python
Python Series从0开始索引的方法
Nov 06 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 #Python
python根据文章标题内容自动生成摘要的实例
Feb 21 #Python
python3.6实现学生信息管理系统
Feb 21 #Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 #Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 #Python
python+mysql实现学生信息查询系统
Feb 21 #Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 #Python
You might like
PHP 选项及相关信息函数库
2006/12/04 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python的randrange()方法使用教程
2015/05/15 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
遗传算法python版
2018/03/19 Python
python实现定时提取实时日志程序
2018/06/22 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Python如何读取、写入JSON数据
2020/07/28 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
电子商务专业求职信
2014/07/10 职场文书
影视后期实训报告
2014/11/05 职场文书
节水宣传标语口号
2015/12/26 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis