|  | @@ -11,6 +11,14 @@ title_xpath = None
 | 
	
		
			
			| 11 | 11 |  suggestion_xpath = ''
 | 
	
		
			
			| 12 | 12 |  results_xpath = ''
 | 
	
		
			
			| 13 | 13 |  
 | 
	
		
			
			|  | 14 | +# parameters for engines with paging support
 | 
	
		
			
			|  | 15 | +#
 | 
	
		
			
			|  | 16 | +# number of results on each page
 | 
	
		
			
			|  | 17 | +# (only needed if the site requires not a page number, but an offset)
 | 
	
		
			
			|  | 18 | +page_size = 1
 | 
	
		
			
			|  | 19 | +# number of the first page (usually 0 or 1)
 | 
	
		
			
			|  | 20 | +first_page_num = 1
 | 
	
		
			
			|  | 21 | +
 | 
	
		
			
			| 14 | 22 |  
 | 
	
		
			
			| 15 | 23 |  '''
 | 
	
		
			
			| 16 | 24 |  if xpath_results is list, extract the text from each result and concat the list
 | 
	
	
		
			
			|  | @@ -76,8 +84,14 @@ def normalize_url(url):
 | 
	
		
			
			| 76 | 84 |  
 | 
	
		
			
			| 77 | 85 |  def request(query, params):
 | 
	
		
			
			| 78 | 86 |      query = urlencode({'q': query})[2:]
 | 
	
		
			
			| 79 |  | -    params['url'] = search_url.format(query=query)
 | 
	
		
			
			|  | 87 | +
 | 
	
		
			
			|  | 88 | +    fp = {'query': query}
 | 
	
		
			
			|  | 89 | +    if paging and search_url.find('{pageno}') >= 0:
 | 
	
		
			
			|  | 90 | +        fp['pageno'] = (params['pageno'] + first_page_num - 1) * page_size
 | 
	
		
			
			|  | 91 | +
 | 
	
		
			
			|  | 92 | +    params['url'] = search_url.format(**fp)
 | 
	
		
			
			| 80 | 93 |      params['query'] = query
 | 
	
		
			
			|  | 94 | +
 | 
	
		
			
			| 81 | 95 |      return params
 | 
	
		
			
			| 82 | 96 |  
 | 
	
		
			
			| 83 | 97 |  
 |