2012-09-11 178 views
0

我有兩個問題:)RSS解析器+ unicode的解碼(蟒蛇)

  1. 我的IRC bot的,我在延長勞動。它應該檢查rss是否有新內容併發布到頻道。我正在使用feedparser。我發現的唯一方法是將每個新內容存儲到文件中,每隔幾分鐘下載rss內容並將其與文件中的內容進行匹配,這在我看來有點奇怪。有沒有簡單的方法來檢查rss中是否有新內容? Thx

  2. 當我將內容保存到文件時,有時某些部分由unicode(捷克語中的特殊字符)編碼 - u「xxx」。但我想將它們保存爲utf8文件。我該怎麼做?

回答

2
  1. RSS項目通常有一個GUID或與其相關聯的鏈接。使用GUID(如果存在),否則使用鏈接來唯一標識每個項目。由於RSS格式沒有告訴你上次更改的內容,因此您仍然需要跟蹤以前看過哪些內容。恐怕真的沒有別的辦法。

  2. 要UTF-8節省data(unicode的對象),寫入文件時,只需對其進行編碼:

    output.write(data.encode('utf8')) 
    

請務必閱讀喬爾斯波斯基article on UnicodePython Unicode HOWTO,充分了解什麼編碼和解碼手段。

+0

2.嗯,這正是我正在做的,但結果是SecurityWorld.cz:AVGpÅedstavilsvábezpeÄnostn​​ÃÅÅÅ¡enver vez 2013而不是SecurityWorld.cz:AVGpředstavilsvábezpečnostn​​ířešeníve verzi 2013這是正確的版本我得到,當我例如打印它。 – user1505497

+0

@ user1505497:文件中的數據是UTF-8,您正在嘗試將其讀作latin1。編寫數據的python代碼工作,它是失敗的文件的*加載*。 –

+0

latin1?當我嘗試編碼到latin1我得到UnicodeEncodeError:'拉丁-1'編解碼器不能編碼字符u'\ u0159'在位置23:序號不在範圍(256)。那麼我真的很困惑所有這些編碼.. – user1505497