2013-01-10 6 views
11

मैं आरएसएस फ़ीड से विभिन्न विवरण प्राप्त करने के लिए पायथन में फीडपार्सर लाइब्रेरी का उपयोग कर रहा हूं। मान लीजिए कि मैंने एक समाचार चैनल के आरएसएस फ़ीड से 25 शीर्षकों के खिताब निकाले हैं। एक घंटे के बाद मैं 25 नई शीर्षकों के शीर्षक की नवीनतम सूची प्राप्त करने के लिए फिर से फीडपार्सर कमांड चलाता हूं। दूसरी बार जब मैं feedparser कमांड चलाता हूं तो सूची को अद्यतन या अद्यतन नहीं किया जा सकता है। कुछ शीर्षकों में समान हो सकता है और कुछ नए हो सकते हैं। मुझे यह जांचने में सक्षम होना चाहिए कि क्या किसी भी समाचार की शीर्षकों में अपडेट किया गया है, जो कि पहले के समय में खींचा गया था। केवल नए शीर्षकों को डेटाबेस में धक्का दिया जाना चाहिए। यह डुप्लिकेट डेटाबेस में डंप होने से बचने के लिए है।पायथन में एक आरएसएस फ़ीड अपडेट किया गया है या नहीं?

import feedparser 
d = feedparser.parse('www.news.example.xml') 
for item in d.entries: 
    hndlr.write(item.title) #data being dumped into a database 

मैं अगर वहाँ सुर्खियों (शीर्षक) में किसी भी अद्यतन था जाँच उपरोक्त कोड हर घंटे चलाने के लिए और करने में सक्षम होने की जरूरत है: नीचे की तरह

कोड लग रहा है। और यदि पहले घंटे निकाले गए डेटा के साथ कोई बदलाव आया था, तो केवल नए डेटा को डेटाबेस में डाला जाना चाहिए।

क्या कोई मेरी मदद कर सकता है?

उत्तर

13

प्रत्येक फ़ीड आइटम में item.id में एक पहचानकर्ता है। नई वस्तुओं की जांच के लिए, उनके .updated (या .updated_parsed) प्रविष्टि के साथ उनको ट्रैक करें।

तो, देखें कि आपने पहले से ही आइटम देखा है (item.id के माध्यम से) या यदि आपने पिछली बार चेक किया था (item.updated या item.updated_parsed के माध्यम से)।

सुनिश्चित करें कि आप फीडपार्सर E-Tag support का लाभ लेते हैं, हालांकि बदले गए फ़ीड सामग्री की जांच के लिए। यह आपको केवल नए आइटम वाले फीड डाउनलोड करने से बचाएगा; जब भी आपको फ़ीड की ताजा नई प्रति प्राप्त होती है तब भी आपको आइटमों को जोड़ने या अपडेट करने की आवश्यकता होती है।

1

के लिए "अच्छा" फ़ीड आप ETag और उपयोग कर सकते हैं अंतिम modfied-के बाद से तंत्र, इसे यहाँ वर्णित http://www.kbcafe.com/rss/rssfeedstate.html

लेकिन कुछ सर्वर इसका समर्थन नहीं करता है, तो आप बस पोस्ट तिथियाँ और आईडी की जांच और देखने की जरूरत , क्या आपके पास अपनी डीबी में ऐसी पोस्ट हैं या नहीं।

संबंधित मुद्दे