一个研究Python实践,最近研究一个投票的东东,主要是想测试利用Python实现刷微信投票

本文纯粹为了记录一下 webdriver直接操作页面按钮的方法:

#!/usr/bin/python
#coding=utf-8
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
import sys,time
reload(sys)
sys.setdefaultencoding('utf-8') desired_capabilities= DesiredCapabilities.PHANTOMJS.copy()
headers = {'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',#这种修改 UA 也有效
'Connection': 'keep-alive'
}
for key, value in headers.iteritems():
desired_capabilities['phantomjs.page.customHeaders.{}'.format(key)] = value
desired_capabilities['phantomjs.page.customHeaders.User-Agent'] ='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
driver= webdriver.PhantomJS(desired_capabilities=desired_capabilities)
url=''
driver.get(url) js = "var q=document.body.scrollTop=100000"
for i in range(10):
driver.execute_script(js)
time.sleep(0.1) print driver.find_element_by_xpath('//*[@id="201290753"]/div[2]/ul/li[1]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290753"]/div[2]/ul/li[1]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290816"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290816"]/div[2]/ul/li[2]/p/span/span').click() print driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[1]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[1]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[2]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[3]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290817"]/div[2]/ul/li[3]/p/span/span').click() print driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[1]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[1]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[2]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[3]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[3]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[4]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290818"]/div[2]/ul/li[4]/p/span/span').click() print driver.find_element_by_xpath('//*[@id="201290820"]/div[2]/ul/li[1]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290820"]/div[2]/ul/li[1]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290820"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290820"]/div[2]/ul/li[2]/p/span/span').click() print driver.find_element_by_xpath('//*[@id="201290821"]/div[2]/ul/li[4]/p/span').text
driver.find_element_by_xpath('//*[@id="201290821"]/div[2]/ul/li[4]/p/span').click()
print 'zhesHi 11111 777777777777777777777'
print driver.find_element_by_xpath('//*[@id="201290822"]/div[2]/ul/li[1]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290822"]/div[2]/ul/li[1]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290822"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290822"]/div[2]/ul/li[2]/p/span/span').click() print driver.find_element_by_xpath('//*[@id="201290824"]/div[2]/ul/li[2]/p/span/span').text
driver.find_element_by_xpath('//*[@id="201290824"]/div[2]/ul/li[2]/p/span/span').click()
print driver.find_element_by_xpath('//*[@id="201290825"]/div[2]/ul/li[2]/p/span').text
driver.find_element_by_xpath('//*[@id="201290825"]/div[2]/ul/li[2]/p/span').click()
print driver.find_element_by_xpath('//*[@id="201290826"]/div[2]/ul/li[2]/p/span').text
driver.find_element_by_xpath('//*[@id="201290826"]/div[2]/ul/li[2]/p/span').click() print driver.find_element_by_xpath('//*[@id="201290841"]/div[2]/div/div/input').text
driver.find_element_by_xpath('//*[@id="201290841"]/div[2]/div/div/input').send_keys(u'我是哥哥')
print driver.find_element_by_xpath('//*[@id="201290841"]/div[2]/div/div/input').text print driver.find_element_by_xpath('//*[@id="form_submit"]').text
driver.find_element_by_xpath('//*[@id="form_submit"]').click() time.sleep(2)
print driver.page_source driver.quit()

 以上就是我的实践,更多可以参考:tp.gam7.com

Python——开发一个自动化微信投票器【附代码实例方法】的更多相关文章

  1. 使用python做一个IRC在线下载器

    使用python做一个IRC在线下载器 1.开发流程 2.软件流程 3.开始 3.0 准备工作 3.1寻找API接口 3.2 文件模块 3.2.1 选择文件弹窗 3.2.2 提取文件名 3.2.2.1 ...

  2. python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题

    今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...

  3. 用python写一个自动化盲注脚本

    前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...

  4. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  5. 小姐姐带你一起学:如何用Python实现7种机器学习算法(附代码)

    小姐姐带你一起学:如何用Python实现7种机器学习算法(附代码) Python 被称为是最接近 AI 的语言.最近一位名叫Anna-Lena Popkes的小姐姐在GitHub上分享了自己如何使用P ...

  6. Python开发一个简单的BBS论坛

    项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...

  7. 【Python】神器:Streamlit,仅使用Python开发一个运维管理后台(不需要编写html,js,css)

    背景 作为SRE,我们有很多很多自动化的工具,大部分都是自动运行的,还有一部分是CLI,我们一直苦于没有一个自己的管理后台网站,受限于前端能力薄弱,开发出来的网页只能说凑活能用,但是不好用. 现在我们 ...

  8. 用 python 实现一个多线程网页下载器

    今天上来分享一下昨天实现的一个多线程网页下载器. 这是一个有着真实需求的实现,我的用途是拿它来通过 HTTP 方式向服务器提交游戏数据.把它放上来也是想大家帮忙挑刺,找找 bug,让它工作得更好. k ...

  9. Ruby与Python开发的环境IDE配置(附软件的百度云链接)

    Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana S ...

随机推荐

  1. 【译】索引进阶(一):SQL SERVER索引介绍

      [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正]  原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/7 ...

  2. OpenCV中Mat总结

    一.数字图像存储概述 数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵. 二.Mat的存储 1.OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘 ...

  3. 【原创】大叔问题定位分享(2)spark任务一定几率报错java.lang.NoSuchFieldError: HIVE_MOVE_FILES_THREAD_COUNT

    最近用yarn cluster方式提交spark任务时,有时会报错,报错几率是40%,报错如下: 18/03/15 21:50:36 116 ERROR ApplicationMaster91: Us ...

  4. extensible_index

    create user ex identified by oracle; grant Resource to ex;grant connect to ex;grant create view to e ...

  5. sass创建web项目环境步骤

    1)npm创建web前端项目环境步骤 1.新建文件夹,在该文件下进入cmd控制台2.输入命令 npm init 回车3.name:名字只支持小写,不支持大写,将大写的名字改为小写即可4.version ...

  6. php隐藏手机号指定位数

    function mobileReplace($mobile,$start,$end,$str="*"){ $countStr = abs($end-$start); $repla ...

  7. 加载Assetbundle需要注意的地方

    WWW:异步实现,手机上不能用于同步代码,需要监测其完成状态.不用www.dispose. CreateFromFile:阻塞,但是移动平台上面的路径格式有点坑,没时间看,不用. 以下两个方式需要先使 ...

  8. Swift 使用 日常笔记

    //------------------- var totalPrice: Int = { willSet(newTotalPrice) { //参数使用new+变量名且变量名首地址大写 printl ...

  9. 一起学Hive——总结常用的Hive优化技巧

    今天总结本人在使用Hive过程中的一些优化技巧,希望给大家带来帮助.Hive优化最体现程序员的技术能力,面试官在面试时最喜欢问的就是Hive的优化技巧. 技巧1.控制reducer数量 下面的内容是我 ...

  10. 工作笔记——使用Jest时遇到的一些问题

    最近公司想要从mocha+karma的前端单元测试方式转换到Jest,然后任务就分配给我了,好吧,在这之前连单元测试是什么都不知道.硬生生的开始写单元测试了,写这篇文章的初衷是因为在配置Jest的过程 ...