import asyncio import time from pyppeteer import launch async def gmailLogin(username, password, url): #'headless': False若是想要瀏覽器隱藏更改False爲True # 127.0.0.1:1080爲代理ip和端口,這個根據本身的本地代理進行更改,若是是vps裏或者全局模式能夠刪除掉'--proxy-server=127.0.0.1:1080' browser = await launch({'headless': False, 'args': ['--no-sandbox', '--proxy-server=127.0.0.1:1080']}) page = await browser.newPage() await page.setUserAgent( 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36') await page.goto(url) # 輸入Gmail await page.type('#identifierId', username) # 點擊下一步 await page.click('#identifierNext > content') page.mouse # 模擬真實點擊 time.sleep(10) # 輸入password await page.type('#password input', password) # 點擊下一步 await page.click('#passwordNext > content > span') page.mouse # 模擬真實點擊 time.sleep(10) # 點擊安全檢測頁面的DONE # await page.click('div > content > span')#若是本機以前登陸過,而且page.setUserAgent設置爲以前登陸成功的瀏覽器user-agent了, # 就不會出現安全檢測頁面,這裏若是有須要的本身根據需求進行更改,可是仍是推薦先用經常使用瀏覽器登陸成功後再用python程序進行登陸。 # 登陸成功截圖 await page.screenshot({'path': './gmail-login.png', 'quality': 100, 'fullPage': True}) #打開谷歌全家桶跳轉,以Youtube爲例 await page.goto('https://www.youtube.com') time.sleep(10) if __name__ == '__main__': username = '你的gmail包含@gmail.com' password = r'你的gmail密碼' url = 'https://gmail.com' loop = asyncio.get_event_loop() loop.run_until_complete(gmailLogin(username, password, url))
參考來源:
https://zhuanlan.zhihu.com/p/53700650
https://blog.csdn.net/Chen_chong__/article/details/82950968python