on master help sign in
[enh] deviantart engine added
commitf56649e3a9fd6f6b0dd4febe1d2fb377ad0bc528 authorasciimoo <asciimoo@gmail.com> dateSun 20 Oct 2013, 11:12 (13 years ago) parentc7b5cdd
1 file changed+29
searx/engines/deviantart.py+29
searx/engines/deviantart.pynew file+29
@@ -0,0 +1,29 @@
1+from urllib import urlencode
2+from lxml import html
3+from urlparse import urljoin
4+
5+categories = ['images']
6+
7+base_url = 'https://www.deviantart.com/'
8+search_url = base_url+'search?'
9+
10+def request(query, params):
11+ global search_url
12+ params['url'] = search_url + urlencode({'q': query})
13+ return params
14+
15+
16+def response(resp):
17+ global base_url
18+ results = []
19+ if resp.status_code == 302:
20+ return results
21+ dom = html.fromstring(resp.text)
22+ for result in dom.xpath('//div[contains(@class, "tt-a tt-fh")]'):
23+ link = result.xpath('.//a[contains(@class, "thumb")]')[0]
24+ url = urljoin(base_url, link.attrib.get('href'))
25+ title_links = result.xpath('.//span[@class="details"]//a[contains(@class, "t")]')
26+ title = ''.join(title_links[0].xpath('.//text()'))
27+ content = html.tostring(link)+'<br />'+link.attrib.get('title')
28+ results.append({'url': url, 'title': title, 'content': content})
29+ return results