Browse Source

[fix] startpage engine : characters with diacritic were preceded by whitespace, and cleaner way to parse the result.

Dalf 11 years ago
parent
commit
a2928e8d83
1 changed files with 5 additions and 6 deletions
  1. 5 6
      searx/engines/startpage.py

+ 5 - 6
searx/engines/startpage.py

@@ -19,14 +19,13 @@ def response(resp):
     global base_url
     global base_url
     results = []
     results = []
     dom = html.fromstring(resp.content)
     dom = html.fromstring(resp.content)
-    for result in dom.xpath('//div[@class="result"]'):
+    # ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
+    # not ads : div[@class="result"] are the direct childs of div[@id="results"]
+    for result in dom.xpath('//div[@id="results"]/div[@class="result"]'):
         link = result.xpath('.//h3/a')[0]
         link = result.xpath('.//h3/a')[0]
         url = link.attrib.get('href')
         url = link.attrib.get('href')
         parsed_url = urlparse(url)
         parsed_url = urlparse(url)
-        # TODO better google link detection
-        if parsed_url.netloc.find('www.google.com') >= 0:
-            continue
-        title = ' '.join(link.xpath('.//text()'))
-        content = escape(' '.join(result.xpath('.//p[@class="desc"]//text()')))
+        title = link.text_content()
+        content = result.xpath('./p[@class="desc"]')[0].text_content()
         results.append({'url': url, 'title': title, 'content': content})
         results.append({'url': url, 'title': title, 'content': content})
     return results
     return results