Как достать нужную часть текста?

У меня есть вот такие cookies:

<RequestsCookieJar[<Cookie session_id=jhkj43h5kj3h45jh34j5h3kj4h5kj34 for .site.ru/>, <Cookie csrf_token=jnkj2h34jhk2j35nk2n5kj3n24kj5n3kj4n5k3j4n5nms for .site.site.ru/>]>

Как мне достать отсюда сам csrf_token?


Ответы (2 шт):

Автор решения: Peter Lavreniuk

Регулярное выражение:

(?<=csrf_token=)(.*)(?= for)

Пример использования :

import re

result = re.search(r"(?<=csrf_token=)(.*)(?= for)", "<RequestsCookieJar[<Cookie session_id=jhkj43h5kj3h45jh34j5h3kj4h5kj34 for .site.ru/>, <Cookie csrf_token=jnkj2h34jhk2j35nk2n5kj3n24kj5n3kj4n5k3j4n5nms for .site.site.ru/>]>")

print(result.group(0))

Вывод:

jnkj2h34jhk2j35nk2n5kj3n24kj5n3kj4n5k3j4n5nms
→ Ссылка
Автор решения: Namerek
import requests
response = requests.get('https://auto.ru')
print(response.cookies.get('_csrf_token'))
# 63f47877d476b3cd141b4732ddd7f04e6a24a17f96bd3530

Если же cookies у вас действительно в текстовом формате:

text_1 = '<RequestsCookieJar[<Cookie session_id=jhkj43h5kj3h45jh34j5h3kj4h5kj34 for .site.ru/>, <Cookie csrf_token=jnkj2h34jhk2j35nk2n5kj3n24kj5n3kj4n5k3j4n5nms for .site.site.ru/>]>'

print(re.sub(r'^.*?csrf_token=(.+?)\s+.*$', r'\1', text_1, flags=re.S))
# jnkj2h34jhk2j35nk2n5kj3n24kj5n3kj4n5k3j4n5nms
→ Ссылка