私はIMAP経由でgmailからチャット記録をプルダウンするプロジェクトに取り組んでいます。私は正常にログインし、次のコードを経由して、最新のgchat転写物を表示していますimap経由でPythonにプルされたgchatsから無関係な文字を取り除く
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()
出力は私がを取り除きたい珍糞漢糞の全体の多くを必要とします。たとえば、これはチャットの一行です:ボディ/ CLI:bodyタグ
<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>
理想的には私は「に=」フィールドと同様に、CLIの間のすべてを維持したいと思います。私は正規表現だけでなく、これの例をスタックで読んできましたが、私は初心者であり、混乱しています。誰も助けることができますか?
私はそれを見てみましょう。それはPythonの中でこれを行う方法がないことは驚くようです - 私は短期間で別の言語に取り組むことを心配しているので、これを言います(来週の予定のためにこれを行います - 私は噛むことができるよりも少し多い:/)。しかし、私は本当に答えを感謝し、それを読むでしょう。ありがとう! – spikem
@spikem、あなたを恐れたくはありませんでしたが、結果として得られるXML処理はおそらく4行のコードに過ぎません(これを自分で試してみたが、あなたのコードは私のためにすぐには機能しませんでした)。さらに、PythonにはXML処理が組み込まれています([xml.dom.minidom](http://docs.python.org/library/xml.dom.minidom.html)を参照)。とにかく、幸運。 – miku