目錄
前言
目標
分析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()
結語
——可以說我不走正途,而我只是想告訴大家,水在沙漠里更值錢,
我并沒有包含任何私心,絕對的無償分享知識,你在怨我?

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/300260.html
標籤:其他
下一篇:??Vue混入(mixin)專案實戰: ElementUI Form表單擴展自定義校驗規則型別 (包含原始碼解讀、詳細代碼)??
