如何用python解析Gmail API MIME响应

如何用python解析Gmail API MIME响应,python,lxml,gmail-api,mime,Python,Lxml,Gmail Api,Mime,我目前需要知道如何提取一个链接从html邮件在Gmail帐户 我可以使用google提供的gmail python库进行连接,但一旦我使用fonction,请举例说明: def GetMimeMessage(service, user_id, msg_id): """Get a Message and use it to create a MIME Message. Args: service: Authorized Gmail API service instance.

我目前需要知道如何提取一个链接从html邮件在Gmail帐户

我可以使用google提供的gmail python库进行连接,但一旦我使用fonction,请举例说明:

def GetMimeMessage(service, user_id, msg_id):
  """Get a Message and use it to create a MIME Message.

  Args:
    service: Authorized Gmail API service instance.
    user_id: User's email address. The special value "me"
    can be used to indicate the authenticated user.
    msg_id: The ID of the Message required.

  Returns:
    A MIME Message, consisting of data from Message.
  """
  try:
    message = service.users().messages().get(userId=user_id, id=msg_id,
                                             format='raw').execute()

    print ('Message snippet: %s' % message['snippet'])

    msg_str = base64.urlsafe_b64decode(message['raw'].encode('ASCII'))

    mime_msg = email.message_from_string(msg_str)

    return mime_msg
  except errors.HttpError, error:
    print ('An error occurred: %s') % error

message = GetMimeMessage(service, 'me', '15876d11f0719f43')
#message = GetMessage(service, 'me', '15876d11f0719f43')
#message = str(message)
print (message)
消息如下所示:

    style=3D"font-family: Verdana, Geneva, sans-serif; font-siz=
e: 14px; line-height: 20px;"><a href=3D"https://e.vidaxl.com/1/4/1505/1/ZJb=
bJSDLWNxmfpHYIRQzlMiIupCb0wiKMrAxIrfXlymZQ_TK5GUcGAT6rIBJD9nfIFJ5XWG6HnYei-=
G1aQqlfnBxKnJ3yujKlOpRY2UxqroSHS51ofyXzr3kFa7OTyJH5zKbxESXzbTlcQOYxRuEnBcKF=
saVBGQXyJomUGLL6RY" target=3D"_blank" style=3D"color:blue;">SUIVEZ VOTRE CO=
MMANDE</a></td>=0A
style=3D”字体系列:Verdana,日内瓦,无衬线;字体大小=
e:14px;线高:20px;“>=0A
如您所见,在每一端添加一个“=”符号。我不知道为什么,是因为我打印的吗

我的主要问题是如何从MIMEmail中提取特定链接。我尝试了lxml,但没有成功。首先是因为我添加了“=”或者因为它不是有效的html或xml


感谢您的帮助

谷歌API页面上的示例没有使用“原始”属性,您是否尝试过默认(“完整”)Hi,他们使用的是原始否?我也尝试使用full,但我得到一个错误,说没有键。尝试使用Python中的库,该库用于解析本文演示的HTTP响应。尝试使用msg.get_payload()返回当前有效负载。演示代码是。我用你的反应来找到一个解决方案,可以解决我的问题。再次感谢。我将编辑我的问题以发布更新代码