浏览代码

[enh] deviantart engine added

asciimoo 11 年前
父节点
当前提交
f56649e3a9
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29
    0
      searx/engines/deviantart.py

+ 29
- 0
searx/engines/deviantart.py 查看文件

@@ -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