【问题标题】:How to read in whole message not just snippet如何阅读整条消息而不仅仅是片段
【发布时间】:2020-11-29 13:37:52
【问题描述】:
 msg = service.users().messages().get(userId='me', id=message['id']).execute()
 print(msg['snippet']) 

我目前正在使用上面的代码,它没有得到完整的信息。我在文档中看到 google API 有 raw 和 full 选项,但是 raw 选项不能以可读的方式打印,我无法让 full 选项工作。

谢谢!

【问题讨论】:

标签: python google-api gmail-api google-api-python-client


【解决方案1】:

这就是我的工作方式:

# Gets message header first
msg_header = service.users().messages().get(
                                                    userId=user_id,
                                                    id=msg_id,
                                                    format="full",
                                                    metadataHeaders=None
                                                    ).execute()

# Gets message body from header
body = base64.urlsafe_b64decode(msg_header.get("payload").get("body")\
            .get("data").encode("ASCII")).decode("utf-8")

正文是 HTML 格式的,所以在我的例子中,我使用 BeautifulSoup 来提取我需要的信息,如下所示:

soup = bs(body, 'html.parser')

# Loop on e-mail table
for row in soup.findAll('tr'): 
            aux = row.findAll('td')
            info[aux[0].string] = aux[1].string

信息提取将取决于消息的模式。就我而言,我收到的所有消息都具有相同的模式。

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 1970-01-01
    • 2011-11-26
    • 2010-09-19
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    相关资源
    最近更新 更多