问题
I was using selenium + chrome driver for my python telegram bot deployed on linux server with docker. Everything is working, but its not supporting async so my app can't do anything else during scrapping. I heard about Pyppeteer, but having some troubles with getting page i need to scrape. Webpage requires me to login. Here are steps:
- Open page.
- Click on auth button:
<button class="btn btn-outline-warning kt-font-dark mr-2" type="button" id="btn_auth"> <i class="fa fa-key"></i> Enter </button>
- After logining div appears on page, and it has next 2 inputs:
<input type="email" class="form-control pd-y-12" name="login[email]" placeholder="Email">
<input type="password" class="form-control pd-y-12" name="login[password]" placeholder="password">
- After inputing email and password, login button should be clicked.
<button class="btn btn-warning btn-block mg-b-10" type="submit" name="do_login">login</button>
Here i am trying to do:
async def main(url):
browser = await launch(headless=False)
page = await browser.newPage()
await page.goto(url)
await asyncio.gather(
page.waitForSelector('button[class="btn btn-outline-warning kt-font-dark mr-2"]', timeout=60000),
page.click('button[class="btn btn-outline-warning kt-font-dark mr-2"]'),
page.waitForSelector('button[class="btn btn-warning btn-block mg-b-10"]', timeout=60000),
page.type('[type=email]', 'example@gmail.com'),
page.type('[type=password]', 'example'),
page.click('button[class="btn btn-warning btn-block mg-b-10"]')
)
await browser.close()
return
Right now can find and click first button, input doesnt work. Also need to return page HTML content
来源:https://stackoverflow.com/questions/64929198/pyppeteer-how-to-login-on-page-with-type