#python #html #css #regex #re
Вопрос:
как расшифровать .eml и получить токен
Комментарии:
1. Я отредактировал свой ответ, чтобы включить способ регулярного выражения для этого…
Ответ №1:
Во-первых, .eml
кодируется в MIME quoted-printable
(подсказка-это =
знаки в конце строки. Сначала вы должны расшифровать это, вместо того, чтобы иметь дело с закодированным необработанным текстом.
Во-вторых, регулярное выражение-это перебор. Некоторое хорошее string.split()
использование будет работать так же хорошо. Регулярное выражение чрезвычайно полезно в сценариях правильного использования, но некоторые простые python обычно могут делать то же самое без необходимости использовать магию регулярных выражений, что может сбивать с толку, как [ОТРЕДАКТИРОВАНО].
Обратите внимание, что если вы создаете регулярное выражение, всегда рекомендуется использовать один из редакторов регулярных выражений gazillion, так как они помогут вам создать регулярное выражение… Мой личный фаворит-регулярное выражение 101
ИЗМЕНИТЬ: добавлен способ регулярного выражения для этого.
import quopri
import re
def get_url_by_regex(raw):
decoded = quopri.decodestring(raw).decode("utf-8")
return re.search('(<a href=")(.*?)(")', decoded).group(2)
def get_url(raw):
decoded = quopri.decodestring(raw).decode("utf-8")
for line in decoded.split('n'):
if 'token=' in line:
return line.split('<a href="')[1].split('"')[0]
return None # just in case this is needed
print(get_url(raw_email))
print(get_url_by_regex(raw_email))
результат таков:
https://app.rule.io/subscriber/optIn?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzd[REST_OF_TOKEN_REDACTED]
https://app.rule.io/subscriber/optIn?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzd[REST_OF_TOKEN_REDACTED]
Ответ №2:
спасибо за хорошее объяснение, это действительно помогло мне!