如何从 Python 的电子邮件中提取长 URL?
How to extract long URL from email with Python?
我需要从使用 Gmail 的 IMAP 抓取的电子邮件中提取很长的 URL(示例如下)。
https://example.com/account/resetpassword?code=e8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6VNRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5tjakgElg%3D%3D&returnUrl=example.com
但是,当我尝试打印抓取的消息时,我注意到我的长 URL 里面有一些额外的东西,例如 =\r\n
和 3D
(请参见下面的示例)或者它被 =
.
分成几行
https://example.com/account/resetpa=\r\nssword?code=3De8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6V=\r\nNRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5=\r\ntjakgElg%3D%3D&returnUrl=3Dexample.com
https://example.com/account/resetpa=
ssword?code=3De8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6V=
NRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5=
tjakgElg%3D%3D&returnUrl=3Dexample.com
如何确保长 URL 中没有添加任何内容,以便我以后可以使用它打开?
"\r\n"
是一个回车return,可以用urlstring.replace("\r\n", "")
去掉。 %3D
表示 =
(source),但我不明白为什么这对您来说是个问题。唯一的问题是马车 returns,它在不同的行上打印你的 URL。
我认为带有 =
和 3D
的格式称为可打印引用。 https://en.wikipedia.org/wiki/Quoted-printable
您可以尝试使用 quopri.decodestring(string)
。 https://docs.python.org/2/library/quopri.html
我需要从使用 Gmail 的 IMAP 抓取的电子邮件中提取很长的 URL(示例如下)。
https://example.com/account/resetpassword?code=e8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6VNRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5tjakgElg%3D%3D&returnUrl=example.com
但是,当我尝试打印抓取的消息时,我注意到我的长 URL 里面有一些额外的东西,例如 =\r\n
和 3D
(请参见下面的示例)或者它被 =
.
https://example.com/account/resetpa=\r\nssword?code=3De8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6V=\r\nNRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5=\r\ntjakgElg%3D%3D&returnUrl=3Dexample.com
https://example.com/account/resetpa=
ssword?code=3De8EkT%2B48uMCHr3Sq4QZVr0%2FVHrTBwQvhYwubjeaKozn29I7VGvWSYNO6V=
NRLXCK230P%2FklDrFC6BpPI7OF%2F5yawHlux80jqTBhTq2QRS4r7sEnSM9qKV1mIXkTzx%2B5=
tjakgElg%3D%3D&returnUrl=3Dexample.com
如何确保长 URL 中没有添加任何内容,以便我以后可以使用它打开?
"\r\n"
是一个回车return,可以用urlstring.replace("\r\n", "")
去掉。 %3D
表示 =
(source),但我不明白为什么这对您来说是个问题。唯一的问题是马车 returns,它在不同的行上打印你的 URL。
我认为带有 =
和 3D
的格式称为可打印引用。 https://en.wikipedia.org/wiki/Quoted-printable
您可以尝试使用 quopri.decodestring(string)
。 https://docs.python.org/2/library/quopri.html