on master help sign in
Onesearch engine without pagination
commit258c6fbd5a8b60a848c65c5b3276d382b67459ed authorIsrael Yago Pereira <israelyago@e.email> dateMon 1 Nov 2021, 16:17 (5 years ago) parent8e00249
2 files changed+57−5
searx/engines/onesearch.py+56 searx/settings.yml+1−5
searx/engines/onesearch.pynew file+56
@@ -0,0 +1,56 @@
1+
2+"""Onesearch
3+"""
4+
5+from lxml.html import fromstring
6+
7+import re
8+
9+from searx.utils import (
10+ eval_xpath,
11+ extract_text,
12+)
13+
14+from urllib.parse import unquote
15+
16+# about
17+about = {
18+ "website": 'https://www.onesearch.com/',
19+ "wikidata_id": None,
20+ "use_official_api": False,
21+ "require_api_key": False,
22+ "results": 'HTML',
23+}
24+
25+# engine dependent config
26+categories = ['general']
27+
28+# search-url
29+URL = 'https://www.onesearch.com/yhs/search;?p=%s'
30+
31+def request(query, params):
32+ params['url'] = URL % query
33+ return params
34+
35+
36+# get response from search-request
37+def response(resp):
38+
39+ results = []
40+ doc = fromstring(resp.text)
41+
42+ titles_tags = eval_xpath(doc, '//div[contains(@class, "algo")]//h3[contains(@class, "title")]')
43+ contents = eval_xpath(doc, '//div[contains(@class, "algo")]/div[contains(@class, "compText")]/p')
44+ onesearch_urls = eval_xpath(doc, '//div[contains(@class, "algo")]//h3[contains(@class, "title")]/a/@href')
45+
46+ for title_tag, content, onesearch_url in zip(titles_tags, contents, onesearch_urls):
47+ print(f"{title_tag.text_content()} ---> {onesearch_url}")
48+ matches = re.search(r'RU=(.*?)\/', onesearch_url)
49+ results.append({
50+ 'title': title_tag.text_content(),
51+ 'content': extract_text(content),
52+ 'url': unquote(matches.group(1)),
53+ })
54+
55+ return results
56+
searx/settings.yml+1−5
@@ -1623,12 +1623,8 @@ engines:
16231623
16241624 - name: onesearch
16251625 shortcut: onesearch
1626− engine: xpath
1626+ engine: onesearch
16271627 paging: false
1628− search_url: https://www.onesearch.com/yhs/search;?p={query}
1629− url_xpath: //div[contains(@class, "algo")]//h3[contains(@class, "title")]/a/@href
1630− title_xpath: //div[contains(@class, "algo")]//h3[contains(@class, "title")]
1631− content_xpath: //div[contains(@class, "algo")]/div[contains(@class, "compText")]/p//text()
16321628 categories: general
16331629 about:
16341630 website: https://www.onesearch.com/