У меня есть небольшая внутренняя веб-страница, требующая входа в систему. При входе в систему загружается простая страница HTML, и существуют сценарии javascript, которые загружают фактическое содержимое страниц.
Я хочу:
- Войти на страницу
- Запустить JavaScript
- Извлечь информацию со страницы
- Найти ссылки на странице и повторить процедуру
Я обнаружил, что существует пакет с именем questions_html, который звучит так, как будто цель состоит в том, чтобы сделать что-то подобное. Мне удалось использовать request_html, чтобы войти на страницу и получить HTML-представление нужной мне страницы. После этого должна появиться возможность вызова
response.html.render()
, а затем запрос__html должен использовать pyppeteer, который загружает и запускает безголовый хром, загружает веб-страницу, отображает страницу и затем возвращает результат. Это на самом деле работает, но возвращает только страницу входа. Информация о сеансе из request_html не передается pyppeteer и / или chromium.
Возможно ли использовать один и тот же сеанс или мне нужно попытаться войти в систему, используя только pyppeteer?
Вот пример кода, но вам нужна небольшая веб-страница с формой входа в систему и рендерингом JavaScript, чтобы примерить ее:
from requests_html import HTMLSession
from lxml import html
url = "https://example.com"
username = "user@example.com"
password = "hunter2"
session = HTMLSession()
payload = {
"input_user": username,
"input_password": password
}
response = session.post(url, data=payload)
# Logged in here
response = session.get(url)
response.html.render()
# Output from this shows login page
print(response.html.html)