zoukankan      html  css  js  c++  java
  • pyppeteer实现自动输入账号、密码、验证码

    网站自动登录
    使用pyppeteer实现自动输入账号、密码
    结合验证码识别,可实现自动登录,获取完整html数据

    注:
    验证码可调用另一篇随笔中的代码实现自动识别功能

    import asyncio
    import requests
    from pyppeteer import launch
    
    width, height = 1366, 768
    
    async def main():
        # headless = False 为False:有头,True为无头
        # userDataDir 设置当前网站的保存路径,下次登陆时可不用登陆
        browser = await launch(headless=True, args=['--disable-infobars'], userDataDir='./b2b.139erp.com')
        # 申明一个page对象
        page = await browser.newPage()
        # 浏览器设置宽高
        await page.setViewport({'width': width, 'height': height})
        # 要访问的网址
        await page.goto('http://26617.b2b.139erp.com')
        # 用户名和密码
        await page.type('#dhhm','此处为账号')
        await page.type('#password', '此处为密码')
        # 等待5秒获取验证码
        await asyncio.sleep(5)
        # 定位验证码,保存到当前路径
        yanzhengma = await page.waitForSelector('#imgVerify')
        await yanzhengma.screenshot({'path': 'yanzhengma.png'})
        while True:
            v_code = input('请输入验证码:')
            if v_code:
                break
        await page.type('#edtSign', v_code)
        # 点击登陆
        await page.click('#bt_login')
    
        await asyncio.sleep(3)
        # 关闭页面 如果return就不用关闭
        # await page.close()
        # 返回cookie
        return await page.cookies()
    
    
    data_list = asyncio.get_event_loop().run_until_complete(main())
    s = requests.Session()
    s.cookies.set(data_list[0]['name'], data_list[0]['value'])
    html = s.get(url='http://26617.b2b.139erp.com/blackweb/quoteList.action', headers={
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0"}).text
    # 此处已登陆成功
    # 从html中获取数据
    print(html)
    
  • 相关阅读:
    一本通1273货币系统(方案数背包)
    背包体积循环正序和逆序的区别
    Python字典的底层原理和优缺点
    Linux各目录及每个目录的详细介绍
    openwrt 下python程序后台运行,并将打印信息保存文件
    pycharm同一目录下无法import其他文件
    python sqlite3学习笔记
    python sqlite3查询表记录
    Pycharm快捷键的使用
    Python3 Address already in use 解决方法
  • 原文地址:https://www.cnblogs.com/exlo/p/13854018.html
Copyright © 2011-2022 走看看