pyppeteer实现自动登录

import requests
import re
import time
import asyncio
import pyppeteer as pyp
#为page添加反反爬手段
async def antiAntiCrawler(page):
await page.setUserAgent('Mozilla/5.0(Windows NT 6.1;\
Win64;x64) AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/78.0.3904.70 Safari/537.36 ')
await page.evaluateOnNewDocument(
'() =>{ Object.defineProperties(navigator,\
webdriver:{ get: () => false}})}')
async def getOjSourceCode(loginUrl):
width,height=1400,800
browser =await pyp.launch(
headless=False,args=[f'--window-size={width},{height}'])
page=await browser.newPage()
await antiAntiCrawler(page)
await page.setViewport({'width':width,'height':height})
await page.goto(loginUrl)
#手动登录可以去掉
element =await page.querySelector("#email")
await element.type("2921643162@qq.com")
element =await page.querySelector("#password")
await element.type("Fll201978040602")
element =await page.querySelector("#main > form > div.user-login > p:nth-child(2) > button")
await element.click()
await page.waitForSelector("#main > h2",timeout=30000)
element = await page.querySelector("#userMenu > li:nth-child(2) > a")
await element.click()

time.sleep(10)
url="http://openjudge.cn/auth/login/"
asyncio.get_event_loop().run_until_complete(getOjSourceCode(url))
posted @ 2021-07-26 12:47  一蓑烟雨任平生生  阅读(394)  评论(0)    收藏  举报