diff options
author | Thomas Pointhuber <thomas.pointhuber@gmx.at> | 2014-03-04 13:11:04 +0100 |
---|---|---|
committer | Thomas Pointhuber <thomas.pointhuber@gmx.at> | 2014-03-04 13:11:04 +0100 |
commit | 0549f8c7c8d25d9764c83bc006fa32cdddc13c46 (patch) | |
tree | 17464d9109d555224a4b6be8be00666e35aa0859 /searx/engines/google_news.py | |
parent | 1d5741954eb6786bbbc31e9bc4d540f73bccdb46 (diff) | |
download | searxng-0549f8c7c8d25d9764c83bc006fa32cdddc13c46.tar.gz searxng-0549f8c7c8d25d9764c83bc006fa32cdddc13c46.zip |
Create google_news.py
Diffstat (limited to 'searx/engines/google_news.py')
-rw-r--r-- | searx/engines/google_news.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py new file mode 100644 index 000000000..ca27a5b2f --- /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 |