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)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM