summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
authorasciimoo <asciimoo@gmail.com>2013-10-20 11:12:10 +0200
committerasciimoo <asciimoo@gmail.com>2013-10-20 11:12:10 +0200
commitf56649e3a9fd6f6b0dd4febe1d2fb377ad0bc528 (patch)
tree855cb7656476a46e90b0413c372fa786a18535e1 /searx
parentc7b5cddc485768f47a75b2432a5aebd0130f676c (diff)
downloadsearxng-f56649e3a9fd6f6b0dd4febe1d2fb377ad0bc528.tar.gz
searxng-f56649e3a9fd6f6b0dd4febe1d2fb377ad0bc528.zip
[enh] deviantart engine added
Diffstat (limited to 'searx')
-rw-r--r--searx/engines/deviantart.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/searx/engines/deviantart.py b/searx/engines/deviantart.py
new file mode 100644
index 000000000..c46a19a63
--- /dev/null
+++ b/searx/engines/deviantart.py
@@ -0,0 +1,29 @@
+from urllib import urlencode
+from lxml import html
+from urlparse import urljoin
+
+categories = ['images']
+
+base_url = 'https://www.deviantart.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 = []
+ if resp.status_code == 302:
+ return results
+ dom = html.fromstring(resp.text)
+ for result in dom.xpath('//div[contains(@class, "tt-a tt-fh")]'):
+ link = result.xpath('.//a[contains(@class, "thumb")]')[0]
+ url = urljoin(base_url, link.attrib.get('href'))
+ title_links = result.xpath('.//span[@class="details"]//a[contains(@class, "t")]')
+ title = ''.join(title_links[0].xpath('.//text()'))
+ content = html.tostring(link)+'<br />'+link.attrib.get('title')
+ results.append({'url': url, 'title': title, 'content': content})
+ return results