mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	Add paging support to XPath & Erowid engines
This commit is contained in:
		
							parent
							
								
									e202c6fbec
								
							
						
					
					
						commit
						bacc9a3df1
					
				@ -11,6 +11,14 @@ title_xpath = None
 | 
				
			|||||||
suggestion_xpath = ''
 | 
					suggestion_xpath = ''
 | 
				
			||||||
results_xpath = ''
 | 
					results_xpath = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# parameters for engines with paging support
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# number of results on each page
 | 
				
			||||||
 | 
					# (only needed if the site requires not a page number, but an offset)
 | 
				
			||||||
 | 
					page_size = 1
 | 
				
			||||||
 | 
					# number of the first page (usually 0 or 1)
 | 
				
			||||||
 | 
					first_page_num = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'''
 | 
					'''
 | 
				
			||||||
if xpath_results is list, extract the text from each result and concat the list
 | 
					if xpath_results is list, extract the text from each result and concat the list
 | 
				
			||||||
@ -76,8 +84,14 @@ def normalize_url(url):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def request(query, params):
 | 
					def request(query, params):
 | 
				
			||||||
    query = urlencode({'q': query})[2:]
 | 
					    query = urlencode({'q': query})[2:]
 | 
				
			||||||
    params['url'] = search_url.format(query=query)
 | 
					
 | 
				
			||||||
 | 
					    fp = {'query': query}
 | 
				
			||||||
 | 
					    if paging and search_url.find('{pageno}') >= 0:
 | 
				
			||||||
 | 
					        fp['pageno'] = (params['pageno'] + first_page_num - 1) * page_size
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    params['url'] = search_url.format(**fp)
 | 
				
			||||||
    params['query'] = query
 | 
					    params['query'] = query
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return params
 | 
					    return params
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -84,7 +84,10 @@ engines:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  - name : erowid
 | 
					  - name : erowid
 | 
				
			||||||
    engine : xpath
 | 
					    engine : xpath
 | 
				
			||||||
    search_url : https://www.erowid.org/search.php?q={query}
 | 
					    paging : True
 | 
				
			||||||
 | 
					    first_page_num : 0
 | 
				
			||||||
 | 
					    page_size : 30
 | 
				
			||||||
 | 
					    search_url : https://www.erowid.org/search.php?q={query}&s={pageno}
 | 
				
			||||||
    url_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
 | 
					    url_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/@href
 | 
				
			||||||
    title_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
 | 
					    title_xpath : //dl[@class="results-list"]/dt[@class="result-title"]/a/text()
 | 
				
			||||||
    content_xpath : //dl[@class="results-list"]/dd[@class="result-details"]
 | 
					    content_xpath : //dl[@class="results-list"]/dd[@class="result-details"]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user