Как извлечь csrf-токен из запроса с использованием Selenium?

Как получить CSRF токен из запроса "auth" с использованием Selenium на macOS? Пробовал разные методы, но не удалось подключить browsermobproxy. Не могу предоставить код, но он открывает страницу, нажимает кнопку и выполняет запрос "auth", в котором содержится CSRF токен.
  • 22 ноября 2023 г. 1:30
Ответы на вопрос 1
Для извлечения CSRF-токена из запроса с использованием Selenium вы можете использовать различные подходы, включая:

1. Использование `driver.get_cookies()` для получения всех кукисов сессии и поиска того, который содержит CSRF-токен. Примерно так:

```python
driver.get('https://example.com')
csrf_token = None

# Нажмите кнопку и выполните запрос "auth", чтобы загрузить страницу и получить CSRF-токен.
# ...

# Получите все куки
cookies = driver.get_cookies()

# Найти куку с CSRF-токеном
for cookie in cookies:
    if cookie['name'] == 'csrf_token':
        csrf_token = cookie['value']
        break

print(csrf_token)
```

2. Использование `driver.execute_script()` для выполнения JavaScript-кода для извлечения CSRF-токена из HTML-кода страницы. Примерно так:

```python
driver.get('https://example.com')

# Нажмите кнопку и выполните запрос "auth", чтобы загрузить страницу и получить CSRF-токен.
# ...

# Исполните JavaScript для извлечения CSRF-токена из HTML-кода страницы
csrf_token = driver.execute_script("return document.querySelector('input[name=csrf_token]').value")

print(csrf_token)
```

3. Использование инструментов прокси-серверов, таких как BrowserMob Proxy, для перехвата и анализа сетевого трафика. Однако вы уже указали, что не удалось подключить BrowserMob Proxy, поэтому этот вариант вам, видимо, не подойдет.

Важно учесть, что конкретные детали реализации могут зависеть от вашего кода и структуры веб-страницы. Учитывайте также особенности вашего приложения и то, как CSRF-токен может храниться и передаваться в запросе.
Похожие вопросы