I am using Django with the Yahoo API. There's even a python module
to make web searches and other Yahoo stuff (*verrry* easy to use).
What I did is create a model replicating every field from the
returned data, then my view requests something and I obj.save() it,
making it available on the admin interface. Something like (this is
for Yahoo news search):
from yahoo.search.news import NewsSearch
srch = NewsSearch('yahoo_app_id', query = 'something', results = 50,
language = 'en')
for news in srch.parse_results():
publish_date = datetime.fromtimestamp(float(news.PublishDate))
thumbnail = news.Thumbnail
if thumbnail is not None:
thumbnail = thumbnail['Url'].encode('utf-8')
try:
obj = News.objects.get(slug = slugify(news.Title)[0:50].encode('utf-8'))
except News.DoesNotExist:
obj = News(slug = slugify(news.Title)[0:50].encode('utf-8'))
obj.title = news.Title[0:125].encode('utf-8')
obj.summary = news.Summary.encode('utf-8')
obj.click_url = news.ClickUrl.encode('utf-8')
obj.news_source = news.NewsSource.encode('utf-8')
obj.news_source_url = news.NewsSourceUrl.encode('utf-8')
obj.language = news.Language.encode('utf-8')
obj.publish_date = publish_date.__str__()
obj.thumbnail = thumbnail
obj.save()
Then I grab some news from the DB:
news_list = News.objects.all().order_by('?')[0:3]
The encode('utf-8') was necessary because Mysql was complaining
about the data, don't know if it'll happen with your DB/server
configuration.
--
Julio Nobrega - http://www.inerciasensorial.com.br
obj.language = news.Language.encode ('utf-8')
obj.publish_date = publish_date.__str__()
obj.thumbnail = thumbnail
obj.save()
Then I grab some news from the DB:
news_list = News.objects.all().order_by('?')[0:3]
The encode('utf-8') was necessary because Mysql was complaining
about the data, don't know if it'll happen with your DB/server
configuration.
--
Julio Nobrega - http://www.inerciasensorial.com.br