目录
前言
目标
分析x0
分析x1
分析x2
代码
结语
大家好,我叫善念。着实是有些单子无法拿出来给大家分享,至于原因大家应该也猜得到,总是带着点看不清的颜色。
其实谈不上外包项目,不过是我自己制作的一些成品加密软件,给出一张卡密而已。不过我还是愿意分享给大家。因为难度并不高,而且很有价值空间,加上官方也一直不去和谐这个东西,所以呢,我就记录一下这个实战。
网址为:Google注册页面(需开梯子)
很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:701698587 欢迎加入,一起讨论 一起学习!
原理很简单,就是利用Google的注册接口发信,我一般称之为大战协议,或者大战脚本吧,因为咱们今天做的确实是脚本。
确实有能力的可以去过一下JavaScript逆向。
这个注册流程就简单了,输入姓名、点击改用当前电子邮件地址、输入密码、确认密码、点击下一步。
看我给大家示范一下会出现什么结果,先填好资料:
当我点击下一步后:
emmmm,看到效果了吧。
既然是说了做Python脚本,又是在网页模拟填表,那么继续利用咱们老框架selenium。
.....每次都要去以前的文章里面复制粘贴告诉你们如何配置selenium,看来到时候要专门写篇selenium的教程了(以下都是从我老文章中复制的)。
插件的安装
关于selenium这个模块,咱们来重点介绍一下:
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
如果不能够理解我就讲点白话,如果你是web开发人员,开发好了几百个网站,那么如果你认为地去一个个的测试BUG,是不是很浪费时间?而selenium这个框架就是用来模拟人去自动化操控浏览器的,那么是不是就节约了很多时间呢。
既然selenium能够操控浏览器,那么它们之间必须要有一个桥梁,总不能无中生有吧?
那么操控的浏览器款式不一样,中间的桥梁也是不一样的。比如我更喜欢用chrome浏览器,那么咱们需要下载一个selenium与Chrome的桥梁——Chromedriver插件。
下载地址
下载与你当前谷歌浏览器版本最相近的Chromedriver
那么像我的话,下载
即可。
Windows系统需下载32位,其它的自己看着办。点进去下载win32即可。
那么如何让Python与selenium连接起来呢,这里咱们需要配置一个环境变量,就是把Python与selenium处于同一个目录:
到此为止,咱们的环境就搭建好了。
那么这个东西,真的没什么好讲的,就是找到输入框模拟输入,然后模拟点击下一步......没啥任何技术含量。
加上UI设计也才没到400行代码,总之就是太简单了啊。下面直接给大家上核心代码吧。
driver = webdriver.Chrome() wait = WebDriverWait(driver, 20) driver.delete_all_cookies() driver.get(f'https://accounts.google.com/signup/v2/webcreateaccount?hl=zh-TW&flowName=GlifWebSignIn&flowEntry=SignUp') # 输入姓名 xm = '' # 姓 x = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="lastName"]'))) x.send_keys(xm.strip().split('----')[0]) # 名 m1 = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="firstName"]'))) m1.send_keys(xm.strip().split('----')[1]) # 管理 gl = wait.until( EC.element_to_be_clickable((By.XPATH, '//*[@id="view_container"]/div/div/div[2]/div/div[1]/div/form/span/section/div/div/div[2]/div[3]/div/div/button')) ) gl.click() # 输入邮箱 yx = '' # 邮箱 yx1 = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="username"]'))) yx1.send_keys(str(yx).strip()) # 密码输入 mmm = str(18508474044 + random.randint(0, 208474044)) + 'Aq' # 密码 mm = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="passwd"]/div[1]/div/div[1]/input'))) mm.send_keys(mmm) # 密码确认 mmqr = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="confirm-passwd"]/div[1]/div/div[1]/input'))) mmqr.send_keys(mmm) # 确认点击 qr = wait.until( EC.element_to_be_clickable((By.XPATH, '//*[@id="accountDetailsNext"]')) ) qr.click() time.sleep(3.5) driver.quit()
——可以说我不走正途,而我只是想告诉大家,水在沙漠里更值钱。
我并没有包含任何私心,绝对的无偿分享知识,你在怨我?