Python-запросы, как получить токен входа в систему

#python #authentication #python-requests

Вопрос:

Я пытаюсь войти по URL-адресу и получить информацию о товарах в своей корзине. Для получения данных запроса на вход мне нужны имя пользователя и пароль, а также токен и ответ на повторную проверку, который я не знаю, как их получить. У токена есть имя «struts.token», и я пытаюсь получить его с помощью этого кода, но это не работает.

 import requests
from bs4 import BeautifulSoup as bs

headers = {
    'user-agent' : 'your user agent'
}

with requests.Session() as s:

    s.headers = headers
    r = s.get('https://www.lidl.es/es/account/login')
    soup = bs(r.content, 'html.parser')
    token = soup.find('input', {'name' : 'struts.token'})['value']
    print(token)
 

Когда я просматриваю элементы и сеть через свой браузер, я могу легко найти токен, но при ответе на запрос я не могу. Есть какие-нибудь предложения?

Заранее спасибо 🙂

Комментарии:

1. Похоже, вы пытаетесь выполнить какую-то автоматизацию. Может быть, «Селен» поможет вам в этом вопросе.

2. современные страницы используют JavaScript для добавления элементов (и повторения), но requests / beautifulsoup не могут запускать JavaScript — поэтому сначала отключите JavaScript в браузере и загрузите URL-адрес в браузере, чтобы посмотреть, может ли страница работать без JavaScript. Если он не может работать, то вам может понадобиться Selenium для управления реальным веб — браузером, который может запускать JavaScript

3. @furas это какая-либо библиотека запросов, поддерживающая JavaScript? я хочу сделать это без использования селена, только по просьбам, я не знаю, возможно ли это будет.

4. все модули используют selenium (напрямую или скрыто headless mode ) или WebKit виджет из фреймворка Qt (который давным-давно использовался для создания браузеров Safari, Chrome и т.д.). requests_html должен автоматически загружаться и устанавливаться Chromium при render() создании страницы с JavaScript