| 
				
			 | 
			
			
				@@ -10,6 +10,7 @@ 
			 | 
		
	
		
			
			| 
				10
			 | 
			
				10
			 | 
			
			
				  @parse       url, title, content 
			 | 
		
	
		
			
			| 
				11
			 | 
			
				11
			 | 
			
			
				 """ 
			 | 
		
	
		
			
			| 
				12
			 | 
			
				12
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				13
			 | 
			
			
				+import random 
			 | 
		
	
		
			
			| 
				13
			 | 
			
				14
			 | 
			
			
				 from json import loads 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				15
			 | 
			
			
				 from time import time 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				16
			 | 
			
			
				 from lxml.html import fromstring 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -32,7 +33,8 @@ search_string = 'search?{query}'\ 
			 | 
		
	
		
			
			| 
				32
			 | 
			
				33
			 | 
			
			
				     '&qh=0'\ 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				34
			 | 
			
			
				     '&qlang={lang}'\ 
			 | 
		
	
		
			
			| 
				34
			 | 
			
				35
			 | 
			
			
				     '&ff={safesearch}'\ 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				
			 | 
			
			
				-    '&rxikd={rxikd}'  # random number - 9 digits 
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+    '&rxieu={rxieu}'\ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				37
			 | 
			
			
				+    '&rand={rxikd}'  # current unix timestamp 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				38
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				37
			 | 
			
				39
			 | 
			
			
				 # specific xpath variables 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				40
			 | 
			
			
				 results_xpath = '//response//result' 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -59,10 +61,12 @@ def request(query, params): 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				61
			 | 
			
			
				     else: 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				62
			 | 
			
			
				         safesearch = 0 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				63
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+    # rxieu is some kind of hash from the search query, but accepts random atm 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				65
			 | 
			
			
				     search_path = search_string.format(query=urlencode({'q': query}), 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				66
			 | 
			
			
				                                        offset=offset, 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				67
			 | 
			
			
				                                        number_of_results=number_of_results, 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				
			 | 
			
			
				-                                       rxikd=str(time())[:9], 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+                                       rxikd=int(time() * 1000), 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+                                       rxieu=random.randint(1000000000,9999999999), 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				70
			 | 
			
			
				                                        lang=language, 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				71
			 | 
			
			
				                                        safesearch=safesearch) 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				72
			 | 
			
			
				  
			 |