目录
前言
目标
分析x0
分析x1
分析x2
代码
结语
前言
大家好,我叫善念。着实是有些单子无法拿出来给大家分享,至于原因大家应该也猜得到,总是带着点看不清的颜色。
其实谈不上外包项目,不过是我自己制作的一些成品加密软件,给出一张卡密而已。不过我还是愿意分享给大家。因为难度并不高,而且很有价值空间,加上官方也一直不去和谐这个东西,所以呢,我就记录一下这个实战。
目标
网址为:Google注册页面(需开梯子)
原理很简单,就是利用Google的注册接口发信,我一般称之为大战协议,或者大战脚本吧,因为咱们今天做的确实是脚本。
确实有能力的可以去过一下JavaScript逆向。
分析x0
这个注册流程就简单了,输入姓名、点击改用当前电子邮件地址、输入密码、确认密码、点击下一步。
看我给大家示范一下会出现什么结果,先填好资料:
当我点击下一步后:
emmmm,看到效果了吧。
分析x1
既然是说了做Python脚本,又是再网页模拟填表,那么继续利用咱们老框架selenium。
.....每次都要去以前的文章里面复制粘贴告诉你们如何配置selenium,看来到时候要专门写篇selenium的教程了(以下都是从我老文章中复制的)。
插件的安装
关于selenium这个模块,咱们来重点介绍一下:
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
如果不能够理解我就讲点白话,如果你是web开发人员,开发好了几百个网站,那么如果你认为的去一个个的测试BUG,是不是很浪费时间?而selenium这个框架就是用来模拟人去自动化操控浏览器的,那么是不是就节约了很多时间呢。
既然selenium能够操控浏览器,那么它们之间必须要有一个桥梁,总不能无中生有吧?
那么操控的浏览器款式不一样,中间的桥梁也是不一样的。比如我更喜欢用chrome浏览器,那么咱们需要下载一个selenium与Chrome的桥梁——Chromedriver插件。
下载地址
下载与你当前谷歌浏览器版本最相近的Chromedriver
那么像我的话,下载 即可。
Windows系统需下载32位,其它的自己看着办。点进去下载win32即可。
那么如何让Python与selenium连接起来呢,这里咱们需要配置一个环境变量,就是把Python与selenium处于同一个目录:
到此为止,咱们的环境就搭建好了。
分析x2
那么这个东西,真的没什么好讲的,就是找到输入框模拟输入,然后模拟点击下一步......没啥任何技术含量。
加上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()
结语
——可以说我不走正途,而我只是想告诉大家,水在沙漠里更值钱。
我并没有包含任何私心,绝对的无偿分享知识,你在怨我?