用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 相关文章推荐
Android应用开发中Action bar编写的入门教程
Feb 26 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
python实战教程之自动扫雷
Jul 13 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 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 登录记住密码实现思路
2013/05/07 PHP
使用正则替换变量
2007/05/05 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
python网络编程之文件下载实例分析
2015/05/20 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
工程概预算专业毕业生求职信
2013/10/04 职场文书
现场施工员岗位职责
2014/03/10 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
土建工程师岗位职责
2014/06/10 职场文书
授权委托书怎么写
2014/09/25 职场文书
护士个人年度总结范文
2015/02/13 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
小学副班长竞选稿
2015/11/21 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
Win11快速关闭所有广告推荐
2022/04/19 数码科技
HttpClient实现表单提交上传文件
2022/08/14 Java/Android