-
Notifications
You must be signed in to change notification settings - Fork 0
/
news_feed.py
37 lines (29 loc) · 1.24 KB
/
news_feed.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import feedparser
from time import mktime
from datetime import datetime
class NewsFeed(object):
def __init__(self, title, link, description, published_date):
self.title = title
self.link = link
self.description = description
self.published_date = published_date
def __str__(self):
return u"Title: {title}\nURL: {url}\nDescription: {desc}".format(title=self.title, url=self.link, desc=self.description).encode('utf-8')
def read_subscribe_news_feed(url, subscribe_category):
def has_subscribe_category(post):
if post.get('tags') is None:
return False
for tag in post.get('tags'):
if tag['term'].lower() in subscribe_category:
return True
return False
feed = feedparser.parse(url)
for post in feed.entries:
if has_subscribe_category(post):
yield NewsFeed(post.title, post.link, post.description, datetime.fromtimestamp(mktime(post.published_parsed)))
if __name__=='__main__':
data = feedparser.parse('http://techcrunch.com/feed/')
print data.feed
for idx, feed in enumerate(data.entries):
print idx, ":", feed.get('category')