import asyncio
from pyppeteer import launch
async def login_page(name, pwd):
# name 用户名, pwd 密码
browser = await launch({
'handleSIGINT': False,
'handleSIGTERM': False,
'handleSIGHUP': False,
'headless': False,
'dumpio': True,
'args': [
'--no-sandbox',
'--no-default-browser-check',
'--disable-extensions',
'--hide-scrollbars',
'--disable-bundled-ppapi-flash',
'--mute-audio',
'--disable-setuid-sandbox',
'--disable-gpu',
"--window-size=1500,900",
"--disable-infobars" # 禁止提示 浏览器被驱动的提示信息
],
})
page = await browser.newPage() # "通过 Browser 对象创建页面 Page 对象"
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299')
await page.setViewport({"width": 1920, "height": 1080}) # 改变 页面大小
login_url = "https://login.taobao.com/member/login.jhtml?redirect_url=https://s.taobao.com/search"
await page.goto(login_url)
await page.evaluateOnNewDocument('() =>{ Object.defineProperties(navigator,'
'{ webdriver:{ get: () => undefined } }) }')
await page.waitForSelector('#fm-login-id')
await page.type('#fm-login-id', name, {'delay': 120})
await page.waitForSelector('#fm-login-password')
time.sleep(0.5)
await page.type('#fm-login-password', pwd, {'delay': 120})
await page.keyboard.press('Enter')
# 点击登录之后,等待页面跳转到登录环境检测页面
await page.waitForNavigation({'timeout': 1200000})
# 这一步是等待页面跳转到淘宝首页,如果是淘宝卖家账号,会跳转到卖家平台
await page.waitForNavigation({'timeout': 1200000})
# 由于网络波动,所以加了个延时,尽可能得到完整cookie
time.sleep(1.5)
cookie = await get_cookie(page)
time.sleep(2)
await page.close()
await browser.close()
return cookie
async def get_cookie(page):
"""
获取cookie
:param:page page对象
:return:cookies 处理后的cookie
"""
cookie_list = await page.cookies()
cookies = ""
for cookie in cookie_list:
coo = "{}={};".format(cookie.get("name"), cookie.get("value"))
cookies += coo
logger.info(cookies)
return cookies