diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py index 3e067597..166c11f8 100644 --- a/searx/engines/startpage.py +++ b/searx/engines/startpage.py @@ -32,8 +32,9 @@ search_url = base_url + 'do/search' # specific xpath variables # ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"] # not ads: div[@class="result"] are the direct childs of div[@id="results"] -results_xpath = '//div[@class="result"]' +results_xpath = '//li[contains(@class, "search-result") and contains(@class, "search-item")]' link_xpath = './/h3/a' +content_xpath = './p[@class="search-item__body"]' # do search-request @@ -79,8 +80,8 @@ def response(resp): title = extract_text(link) - if result.xpath('./p[@class="desc clk"]'): - content = extract_text(result.xpath('./p[@class="desc clk"]')) + if result.xpath(content_xpath): + content = extract_text(result.xpath(content_xpath)) else: content = '' diff --git a/tests/unit/engines/test_startpage.py b/tests/unit/engines/test_startpage.py index bdb3356b..4a8a443d 100644 --- a/tests/unit/engines/test_startpage.py +++ b/tests/unit/engines/test_startpage.py @@ -31,14 +31,14 @@ class TestStartpageEngine(SearxTestCase): self.assertEqual(startpage.response(response), []) html = """ -
+
  • This should be the title

    -

    +

    This should be the content.

    @@ -56,7 +56,7 @@ class TestStartpageEngine(SearxTestCase): Mis en surbrillance

    -
  • + """ response = mock.Mock(text=html.encode('utf-8')) results = startpage.response(response) @@ -67,14 +67,14 @@ class TestStartpageEngine(SearxTestCase): self.assertEqual(results[0]['content'], 'This should be the content.') html = """ -
    +
  • This should be the title

    -

    +

    This should be the content.

    @@ -92,20 +92,20 @@ class TestStartpageEngine(SearxTestCase): Mis en surbrillance

    -
  • -
    + +
  • -

    +

    This should be the content.

    www.speedtest.net/fr/

    -
  • -
    + +
  • This should be the title @@ -127,7 +127,7 @@ class TestStartpageEngine(SearxTestCase): Mis en surbrillance

    -

  • + """ response = mock.Mock(text=html.encode('utf-8')) results = startpage.response(response)