Guest User

Untitled

a guest
Dec 14th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import feedparser
  2. import json
  3. import dateparser
  4.  
  5. class RssParser():
  6. def parseurl(self, url):
  7. '''
  8. parse a rss xml url feed to json
  9. '''
  10. self.parsed_url = feedparser.parse(url)
  11. return self.parsed_url
  12.  
  13. def parsemultipleurl(self, urls):
  14. '''
  15. parse multiple rss xml feed url to json
  16. '''
  17. self.parsedurls = []
  18. for url in urls:
  19. self.parsedurls.append(self.parseurl(url))
  20. return self.parsedurls
  21. def parsepublishdate(self, date):
  22. parseddate = dateparser.parse(date)
  23. return parseddate.strftime('%m/%d/%Y %I:%M:%S %p')
  24.  
  25. def feedformat(self, entry):
  26. '''
  27. feed format what are the field shout present in the feed
  28. '''
  29. feed = {}
  30. feed['title'] = entry.get('title')
  31. feed['summary']= entry.get('summary')
  32. feed['link'] = entry.get('link')
  33. feed['published']=self.parsepublishdate(entry.get('published'))
  34. feed['thumnail']=entry.get('storyimage')
  35. return feed.copy()
  36.  
  37. def formatedfeed(self, urls):
  38. '''
  39. format parsed url to pecific format
  40. '''
  41. formatted_feeds = []
  42. feed = {}
  43. for url in urls:
  44. for entry in url.entries:
  45. feed = self.feedformat(entry)
  46. formatted_feeds.append(feed)
  47. return formatted_feeds
  48.  
  49. def sortfeeds(self, formattedfeeds):
  50. '''
  51. sort parsed feeds by date time
  52. '''
  53. sortedfeeds = sorted(formattedfeeds, key=lambda t: t['published'], reverse=True)
  54. return sortedfeeds
Add Comment
Please, Sign In to add comment