使用Pyppeteer进行gmail模拟登陆

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

相关文章
相关标签/搜索