Я работаю над проектом, который загружает стенограммы чата из gmail через imap. Я успешно вошел в систему и отобразил самую последнюю расшифровку стенограммы с помощью следующего кода:
import getpass, imaplib, email, re, sys
s=imaplib.IMAP4_SSL('imap.gmail.com', 993)
getuser = raw_input("<username>")
getpass = raw_input("<password>")
s.login(getuser, getpass)
s.select('[Gmail]/Chats',readonly=True)
result, data = s.uid('search', None, "ALL")#fetch email body (RFC822) for the given ID
latest_email_uid = data[0].split()[-1]
result, data = s.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]
print raw_email
s.close()
s.logout()
Вывод включает в себя кучу болтовни, от которой я хочу избавиться. Например, это одна строка чата:
<con:conversation xmlns:con="google:archive:conversation"><cli:message
to="<email redacted>" from="<email redacted>"
int:cid="13865109981248781158" int:sequence-no="4"
int:time-stamp="1323547231442" xmlns:cli="jabber:client"
xmlns:int="google:internal"><cli:body>uhh</cli:body>
В идеале я хотел бы сохранить поле "to =", а также все, что находится между тегами cli: body / cli: body. Я читал стек для примеров этого, а также регулярных выражений, но я новичок, и я запутался. Кто-нибудь может помочь?