2010-06-22 53 views
0

我遇到了一個問題,它抓取了我抓取的一些博客訂閱源中的內容。關於通用訂閱解析器的問題

我不確定是什麼原因,但是通過解析一個或兩個博客與feedparser返回我此特定錯誤:

results = feedparser.parse(url) 

    ent = [] 

    for entry in results.entries: 
    e = {} 
    e['title'] = entry.title 
    e['content'] = entry.content[0].value 

object has no attribute 'content'

object has no attribute 'link'

這不是招」我的其他博客的情況就是如此。空的條目內容是否會導致這種情況?

回答

1

Feed中使用的XML標記與feedparser中的條目上可用的屬性之間存在映射關係。查看導致問題的其中一個供稿源,並查看它使用的標籤。您可能會發現它不包含條目的內容,或者鏈接位於uid而非link的字段中。

然後,您需要編寫代碼來處理輕微的變化,可以使用try/catch或使用hasattr檢查特定屬性。

如果您發佈了其中一個供稿的鏈接,我可能會提供更多的建議。

+0

快速提問。各種blogspot博客使用的自定義腳本模板會改變內容的結構。查看代碼後,幾個博客的內容位於「摘要」字段內,而不是「內容」字段 – goh 2010-06-23 08:10:09

+0

我快速瀏覽了Blogspot,並且無法看到編輯Feed的模板的方法。我看過的博客在RSS中的Atom feed和description中使用了'content'。你有一對夫婦的網址,你看着有差異嗎? – mikej 2010-06-23 19:12:05