1. 程式人生 > 其它 >無需發件箱Python自動傳送郵件指令碼,為我掙了上萬月的簡單專案

無需發件箱Python自動傳送郵件指令碼,為我掙了上萬月的簡單專案

目錄

前言

目標

分析x0

分析x1

分析x2

程式碼

結語


前言

大家好,我叫善念。著實是有些單子無法拿出來給大家分享,至於原因大家應該也猜得到,總是帶著點看不清的顏色。

其實談不上外包專案,不過是我自己製作的一些成品加密軟體,給出一張卡密而已。不過我還是願意分享給大家。因為難度並不高,而且很有價值空間,加上官方也一直不去和諧這個東西,所以呢,我就記錄一下這個實戰。

目標

網址為:Google註冊頁面(需開梯子)

很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:
701698587 歡迎加入,一起討論 一起學習!

原理很簡單,就是利用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()

結語

——可以說我不走正途,而我只是想告訴大家,水在沙漠裡更值錢。

我並沒有包含任何私心,絕對的無償分享知識,你在怨我?