#python-3.x #selenium #web-scraping #pyppeteer
#python-3.x #селен #очистка веб-страниц #pyppeteer
Вопрос:
Я использовал драйвер selenium chrome для моего бота python telegram, развернутого на сервере Linux с помощью docker. Все работает, но не поддерживает асинхронность, поэтому мое приложение больше ничего не может делать во время очистки. Я слышал о Pyppeteer, но у меня возникли некоторые проблемы с получением страницы, которую мне нужно очистить. Веб-страница требует от меня входа в систему. Вот шаги:
- Откройте страницу.
- Нажмите на кнопку авторизации:
<button class="btn btn-outline-warning kt-font-dark mr-2" type="button" id="btn_auth"> <i class="fa fa-key"></i> Enter </button>
- После входа в систему на странице появляется div, и он имеет следующие 2 входа:
<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">
- После ввода электронной почты и пароля следует нажать кнопку входа.
<button class="btn btn-warning btn-block mg-b-10" type="submit" name="do_login">login</button>
Здесь я пытаюсь сделать:
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
Прямо сейчас можно найти и нажать первую кнопку, ввод не работает. Также необходимо вернуть HTML-содержимое страницы
Комментарии:
1. Возможно, вам нужно сначала прокрутить вниз до вашего тега ввода/