【发布时间】:2021-08-29 22:20:26
【问题描述】:
我试图从 .eml 文件中删除一个链接,但不知何故我总是得到
【问题讨论】:
标签: python regex web-scraping
我试图从 .eml 文件中删除一个链接,但不知何故我总是得到
【问题讨论】:
标签: python regex web-scraping
是的。你说的对。只需从原始文本中删除空格和新行。 例如:
link = re.findall("CONFIRM<([^\s]+)>", raw_email.replace('\n', '').replace(' ', ''))
【讨论】:
基本上你想得到CONFIRM<和>之间的一切。
(.*?) 将捕获 CONFIRM< 和 > 之间的所有内容
.group(1)获取实际捕获的字符串import re
def get_url(raw):
raw = raw.replace(' ', '')
url = re.search('CONFIRM<(.*?)>', raw).group(1)
return url
对于给定的测试用例。
raw_url = 'Please click "CONFIRM" below. CONFIRM<https://app.rule.io/subscriber/optIn?token=3DeyJ0eXAiOiJKV1QiLCJhbG= ciOiJIUzI1NiJ9.eyJzdWIiOjEssswrgTA3OCwic3Vic2NyaWJlckZvcm0iOjExOTAsImlzcyI6= Imh0dHBzOi8vYawetgg1bGUuaW8iLCJpYXQiOjE2MjM1NzkwMDYsImV4cCI6MTYyNDE4MzgwNiw= ibmJmIjoxNjIzNTc5MDA2LCJqdGkiOiJEbHMyeDJmcG5pZEhTWXVjwjwje-52uhXlj9efaEwzfI= Rruoiqc3RvUTZ8LgB6ALEAoL4>'
print(get_url(raw_url))
会输出
https://app.rule.io/subscriber/optIn?token=3DeyJ0eXAiOiJKV1QiLCJhbG=ciOiJIUzI1NiJ9.eyJzdWIiOjEssswrgTA3OCwic3Vic2NyaWJlckZvcm0iOjExOTAsImlzcyI6=Imh0dHBzOi8vYawetgg1bGUuaW8iLCJpYXQiOjE2MjM1NzkwMDYsImV4cCI6MTYyNDE4MzgwNiw=ibmJmIjoxNjIzNTc5MDA2LCJqdGkiOiJEbHMyeDJmcG5pZEhTWXVjwjwje-52uhXlj9efaEwzfI=Rruoiqc3RvUTZ8LgB6ALEAoL4
【讨论】: