summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
authordalf <alex@al-f.net>2015-01-22 11:40:28 +0100
committerdalf <alex@al-f.net>2015-01-22 11:40:28 +0100
commit0a83be0ec92928bb07e19a28ff009d624b307030 (patch)
treed29421be64896bb7b487688d3283858230774ce6 /searx
parentc169fc3aa29936b5289947b5a8b8d8101fb5f106 (diff)
[fix] google engine: depending on the IP of the searx instance, each searx request where making two HTTP requests (see https://support.google.com/websearch/answer/873?hl=en )
Diffstat (limited to 'searx')
-rw-r--r--searx/engines/google.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/searx/engines/google.py b/searx/engines/google.py
index d4db82a2e..9c768260a 100644
--- a/searx/engines/google.py
+++ b/searx/engines/google.py
@@ -11,6 +11,7 @@
from urllib import urlencode
from urlparse import urlparse, parse_qsl
from lxml import html
+from searx.poolrequests import get
from searx.engines.xpath import extract_text, extract_url
# engine dependent config
@@ -39,6 +40,17 @@ images_xpath = './/div/a'
image_url_xpath = './@href'
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
def parse_url(url_string):
@@ -64,6 +76,7 @@ def request(query, params):
query=urlencode({'q': query}))
params['headers']['Accept-Language'] = language
+ params['cookies']['PREF'] = get_google_pref_cookie()
return params