on master help sign in
Merge pull request #167 from Cqoicebordel/minor-fixes
3b67203Adam Tauber
searx/engines/digg.py+3
@@ -44,6 +44,9 @@ def response(resp):
44
44
45 search_result = loads(resp.text)
45 search_result = loads(resp.text)
46
46
47+ if search_result['html'] == '':
48+ return results
49+
47 dom = html.fromstring(search_result['html'])
50 dom = html.fromstring(search_result['html'])
48
51
49 # parse results
52 # parse results
searx/engines/vimeo.py+7−15
@@ -13,24 +13,23 @@
13# @todo set content-parameter with correct data
13# @todo set content-parameter with correct data
14
14
15from urllib import urlencode
15from urllib import urlencode
16−from HTMLParser import HTMLParser
17from lxml import html
16from lxml import html
18−from searx.engines.xpath import extract_text
19from dateutil import parser
17from dateutil import parser
18+from cgi import escape
20
19
21# engine dependent config
20# engine dependent config
22categories = ['videos']
21categories = ['videos']
23paging = True
22paging = True
24
23
25# search-url
24# search-url
26−base_url = 'https://vimeo.com'
25+base_url = 'http://vimeo.com'
27search_url = base_url + '/search/page:{pageno}?{query}'
26search_url = base_url + '/search/page:{pageno}?{query}'
28
27
29# specific xpath variables
28# specific xpath variables
29+results_xpath = '//div[@id="browse_content"]/ol/li'
30url_xpath = './a/@href'
30url_xpath = './a/@href'
31+title_xpath = './a/div[@class="data"]/p[@class="title"]'
31content_xpath = './a/img/@src'
32content_xpath = './a/img/@src'
32−title_xpath = './a/div[@class="data"]/p[@class="title"]/text()'
33−results_xpath = '//div[@id="browse_content"]/ol/li'
34publishedDate_xpath = './/p[@class="meta"]//attribute::datetime'
33publishedDate_xpath = './/p[@class="meta"]//attribute::datetime'
35
34
36
35
@@ -39,10 +38,6 @@ def request(query, params):
39 params['url'] = search_url.format(pageno=params['pageno'],
38 params['url'] = search_url.format(pageno=params['pageno'],
40 query=urlencode({'q': query}))
39 query=urlencode({'q': query}))
41
40
42− # TODO required?
43− params['cookies']['__utma'] =\
44− '00000000.000#0000000.0000000000.0000000000.0000000000.0'
45−
46 return params
41 return params
47
42
48
43
@@ -52,15 +47,12 @@ def response(resp):
52
47
53 dom = html.fromstring(resp.text)
48 dom = html.fromstring(resp.text)
54
49
55− p = HTMLParser()
56−
57 # parse results
50 # parse results
58 for result in dom.xpath(results_xpath):
51 for result in dom.xpath(results_xpath):
59 url = base_url + result.xpath(url_xpath)[0]
52 url = base_url + result.xpath(url_xpath)[0]
60− title = p.unescape(extract_text(result.xpath(title_xpath)))
53+ title = escape(html.tostring(result.xpath(title_xpath)[0], method='text', encoding='UTF-8').decode("utf-8"))
61− thumbnail = extract_text(result.xpath(content_xpath)[0])
54+ thumbnail = result.xpath(content_xpath)[0]
62− publishedDate = parser.parse(extract_text(
63− result.xpath(publishedDate_xpath)[0]))
55+ publishedDate = parser.parse(result.xpath(publishedDate_xpath)[0])
64
56
65 # append result
57 # append result
66 results.append({'url': url,
58 results.append({'url': url,