Merge pull request #195 from dalf/google
[fix] google engine (close #193)
This commit is contained in:
		
						commit
						001ec806c5
					
				| @ -11,6 +11,7 @@ | |||||||
| from urllib import urlencode | from urllib import urlencode | ||||||
| from urlparse import urlparse, parse_qsl | from urlparse import urlparse, parse_qsl | ||||||
| from lxml import html | from lxml import html | ||||||
|  | from searx.poolrequests import get | ||||||
| from searx.engines.xpath import extract_text, extract_url | from searx.engines.xpath import extract_text, extract_url | ||||||
| 
 | 
 | ||||||
| # engine dependent config | # engine dependent config | ||||||
| @ -39,6 +40,17 @@ images_xpath = './/div/a' | |||||||
| image_url_xpath = './@href' | image_url_xpath = './@href' | ||||||
| image_img_src_xpath = './img/@src' | image_img_src_xpath = './img/@src' | ||||||
| 
 | 
 | ||||||
|  | pref_cookie = '' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # see https://support.google.com/websearch/answer/873?hl=en | ||||||
|  | def get_google_pref_cookie(): | ||||||
|  |     global pref_cookie | ||||||
|  |     if pref_cookie == '': | ||||||
|  |         resp = get('https://www.google.com/ncr', allow_redirects=False) | ||||||
|  |         pref_cookie = resp.cookies["PREF"] | ||||||
|  |     return pref_cookie | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| # remove google-specific tracking-url | # remove google-specific tracking-url | ||||||
| def parse_url(url_string): | def parse_url(url_string): | ||||||
| @ -64,6 +76,7 @@ def request(query, params): | |||||||
|                                       query=urlencode({'q': query})) |                                       query=urlencode({'q': query})) | ||||||
| 
 | 
 | ||||||
|     params['headers']['Accept-Language'] = language |     params['headers']['Accept-Language'] = language | ||||||
|  |     params['cookies']['PREF'] = get_google_pref_cookie() | ||||||
| 
 | 
 | ||||||
|     return params |     return params | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user