From c7b5cddc485768f47a75b2432a5aebd0130f676c Mon Sep 17 00:00:00 2001 From: asciimoo Date: Sun, 20 Oct 2013 10:40:02 +0200 Subject: [PATCH] [enh] twitter engine added --- searx/engines/twitter.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 searx/engines/twitter.py diff --git a/searx/engines/twitter.py b/searx/engines/twitter.py new file mode 100644 index 00000000..d0a0aef1 --- /dev/null +++ b/searx/engines/twitter.py @@ -0,0 +1,26 @@ +from urlparse import urljoin +from urllib import urlencode +from lxml import html + +categories = ['social media'] + +base_url = 'https://twitter.com/' +search_url = base_url+'search?' + +def request(query, params): + global search_url + params['url'] = search_url + urlencode({'q': query}) + return params + + +def response(resp): + global base_url + results = [] + dom = html.fromstring(resp.text) + for tweet in dom.xpath('//li[@data-item-type="tweet"]'): + link = tweet.xpath('.//small[@class="time"]//a')[0] + url = urljoin(base_url, link.attrib.get('href')) + title = ''.join(tweet.xpath('.//span[@class="username js-action-profile-name"]//text()')) + content = ''.join(map(html.tostring, tweet.xpath('.//p[@class="js-tweet-text tweet-text"]//*'))) + results.append({'url': url, 'title': title, 'content': content}) + return results