Python中的Gmail阿比Base64编码解码奇怪的字符数在电子邮件正文

问题描述:

我使用Gmail的API来从我的收件箱的邮件:Python中的Gmail阿比Base64编码解码奇怪的字符数在电子邮件正文

query = 'to:me after:{}'.format(weekStartDate) 

unreadEmailsQuery = service.users().messages().list(userId='me', q=query).execute() 

# For Each Email 
for message in unreadEmailsQuery['messages']: 
    result = service.users().messages().get(id=message['id'],userId='me').execute() 
    email_content = '' 

    if 'data' in result['payload']['body'].keys(): 
     email_content+= result['payload']['body']['data'] 
    else: 

     for part in result['payload']['parts']: 
      email_content = part['body']['data'] + email_content 



    test = bytes(str(email_content),encoding='utf-8') 
    print(base64.decodebytes(test)) 

打印出简单的纯文本信息正确:

b'Got another one with me

但打印出如下这样的html消息:

b'<body\x03B\x83B\x83B\x83B\x88\x08\x0f\x1bY]\x18H\x1a\x1d\x1d\x1c\x0bY\\]Z]\x8fH\x90\xdb\ 

我可以看到它没关系,直到第一个>从那时起字符串打印得不正确,我不知道为什么。

我想从我的电子邮件中提取单词,这样我就可以训练分类器但我被卡住了。

任何帮助将不胜感激。

+0

为什么向下票呢?请让我知道如何改善我的问题? –

我需要使用URl安全base64解码。

我设法通过改变最后一行得到这个工作:

print(base64.decodebytes(test)) 

到:

print(base64.urlsafe_b64decode(thng))