diff options
| author | Alexandre Flament <alex@al-f.net> | 2021-09-29 10:38:50 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-29 10:38:50 +0200 |
| commit | a582cf3d8231f5ed8a881aa87576dfc0600e1c07 (patch) | |
| tree | f3addfa011eb0ace1fefe7d39024c204fed02951 /searx/engines/stackoverflow.py | |
| parent | 7124fd17041c0a2dfc07bff7f3fe7de370b57a81 (diff) | |
| parent | ecb3912bd000bddd10841775ecada538386818c5 (diff) | |
Merge pull request #353 from return42/stackexchange
[mod] engines - add Stack Exchange API v2.3
Diffstat (limited to 'searx/engines/stackoverflow.py')
| -rw-r--r-- | searx/engines/stackoverflow.py | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/searx/engines/stackoverflow.py b/searx/engines/stackoverflow.py deleted file mode 100644 index 8fc2cdb3a..000000000 --- a/searx/engines/stackoverflow.py +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -""" - Stackoverflow (IT) -""" - -from urllib.parse import urlencode, urljoin -from lxml import html -from searx.utils import extract_text -from searx.exceptions import SearxEngineCaptchaException - -# about -about = { - "website": 'https://stackoverflow.com/', - "wikidata_id": 'Q549037', - "official_api_documentation": 'https://api.stackexchange.com/docs', - "use_official_api": False, - "require_api_key": False, - "results": 'HTML', -} - -# engine dependent config -categories = ['it'] -paging = True - -# search-url -url = 'https://stackoverflow.com/' -search_url = url + 'search?{query}&page={pageno}' - -# specific xpath variables -results_xpath = '//div[contains(@class,"question-summary")]' -link_xpath = './/div[@class="result-link"]//a|.//div[@class="summary"]//h3//a' -content_xpath = './/div[@class="excerpt"]' - - -# do search-request -def request(query, params): - params['url'] = search_url.format(query=urlencode({'q': query}), pageno=params['pageno']) - - return params - - -# get response from search-request -def response(resp): - if resp.url.path.startswith('/nocaptcha'): - raise SearxEngineCaptchaException() - - results = [] - - dom = html.fromstring(resp.text) - - # parse results - for result in dom.xpath(results_xpath): - link = result.xpath(link_xpath)[0] - href = urljoin(url, link.attrib.get('href')) - title = extract_text(link) - content = extract_text(result.xpath(content_xpath)) - - # append result - results.append({'url': href, - 'title': title, - 'content': content}) - - # return results - return results |