From 0549f8c7c8d25d9764c83bc006fa32cdddc13c46 Mon Sep 17 00:00:00 2001 From: Thomas Pointhuber Date: Tue, 4 Mar 2014 13:11:04 +0100 Subject: [PATCH] Create google_news.py --- searx/engines/google_news.py | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 searx/engines/google_news.py diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py new file mode 100644 index 00000000..ca27a5b2 --- /dev/null +++ b/searx/engines/google_news.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +from urllib import urlencode +from json import loads + +categories = ['news'] + +url = 'https://ajax.googleapis.com/' +search_url = url + 'ajax/services/search/news?v=2.0&start={offset}&rsz=large&safe=off&filter=off&{query}&hl={language}' # noqa + +paging = True +language_support = True + + +def request(query, params): + offset = (params['pageno'] - 1) * 8 + language = 'en-US' + if params['language'] != 'all': + language = params['language'].replace('_', '-') + params['url'] = search_url.format(offset=offset, + query=urlencode({'q': query}), + language=language) + return params + + +def response(resp): + results = [] + search_res = loads(resp.text) + + if not search_res.get('responseData', {}).get('results'): + return [] + + for result in search_res['responseData']['results']: + results.append({'url': result['unescapedUrl'], + 'title': result['titleNoFormatting'], + 'content': result['content']}) + return results