We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Bug: google news engine
**Version of SearXNG, commit number if you are using on master branch and stipulate if you forked SearXNG**

7ef33c91e057defde55cc90d4123f284910723d9

**How did you install SearXNG?**
docker

**How To Reproduce**
`!google_news time` crashes whatever the search language is

**Technical report**

Error
  * Error: KeyError
  * Percentage: 100
  * Parameters: `()`
  * File name: `searx/engines/google_news.py:97`
  * Function: `request`
  * Code: `if lang_info['hl'] == 'en':`

Checker
  * simple: `KeyError `,
  * lang_fr: `KeyError `,
  * lang_en: `KeyError `,

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `searx/engines/google_news.py`
Content:
```
1 # SPDX-License-Identifier: AGPL-3.0-or-later
2 # lint: pylint
3 """Google (News)
4 
5 For detailed description of the *REST-full* API see: `Query Parameter
6 Definitions`_.  Not all parameters can be appied:
7 
8 - num_ : the number of search results is ignored
9 - save_ : is ignored / Google-News results are always *SafeSearch*
10 
11 .. _Query Parameter Definitions:
12    https://developers.google.com/custom-search/docs/xml_results#WebSearch_Query_Parameter_Definitions
13 
14 .. _num: https://developers.google.com/custom-search/docs/xml_results#numsp
15 .. _save: https://developers.google.com/custom-search/docs/xml_results#safesp
16 
17 """
18 
19 # pylint: disable=invalid-name, missing-function-docstring
20 
21 import binascii
22 import re
23 from urllib.parse import urlencode
24 from base64 import b64decode
25 from lxml import html
26 
27 from searx import logger
28 from searx.utils import (
29     eval_xpath,
30     eval_xpath_list,
31     eval_xpath_getindex,
32     extract_text,
33 )
34 
35 # pylint: disable=unused-import
36 from searx.engines.google import (
37     supported_languages_url,
38     _fetch_supported_languages,
39 )
40 # pylint: enable=unused-import
41 
42 from searx.engines.google import (
43     get_lang_info,
44     detect_google_sorry,
45 )
46 
47 # about
48 about = {
49     "website": 'https://news.google.com',
50     "wikidata_id": 'Q12020',
51     "official_api_documentation": 'https://developers.google.com/custom-search',
52     "use_official_api": False,
53     "require_api_key": False,
54     "results": 'HTML',
55 }
56 
57 logger = logger.getChild('google news')
58 
59 # compared to other google engines google-news has a different time range
60 # support.  The time range is included in the search term.
61 time_range_dict = {
62     'day': 'when:1d',
63     'week': 'when:7d',
64     'month': 'when:1m',
65     'year': 'when:1y',
66 }
67 
68 # engine dependent config
69 
70 categories = ['news']
71 paging = False
72 use_locale_domain = True
73 time_range_support = True
74 
75 # Google-News results are always *SafeSearch*. Option 'safesearch' is set to
76 # False here, otherwise checker will report safesearch-errors::
77 #
78 #  safesearch : results are identitical for safesearch=0 and safesearch=2
79 safesearch = False
80 
81 def request(query, params):
82     """Google-News search request"""
83 
84     lang_info = get_lang_info(
85         # pylint: disable=undefined-variable
86         params, supported_languages, language_aliases, False
87     )
88     logger.debug(
89         "HTTP header Accept-Language --> %s", lang_info['headers']['Accept-Language'])
90 
91     # google news has only one domain
92     lang_info['subdomain'] = 'news.google.com'
93 
94     ceid = "%s:%s" % (lang_info['country'], lang_info['language'])
95 
96     # google news redirects en to en-US
97     if lang_info['hl'] == 'en':
98         lang_info['hl'] = 'en-US'
99 
100     # Very special to google-news compared to other google engines, the time
101     # range is included in the search term.
102     if params['time_range']:
103         query += ' ' + time_range_dict[params['time_range']]
104 
105     query_url = 'https://' + lang_info['subdomain'] + '/search' + "?" + urlencode({
106         'q': query,
107         **lang_info['params'],
108         'ie': "utf8",
109         'oe': "utf8",
110         'gl': lang_info['country'],
111     }) + ('&ceid=%s' % ceid)  # ceid includes a ':' character which must not be urlencoded
112     params['url'] = query_url
113 
114     params['headers'].update(lang_info['headers'])
115     params['headers']['Accept'] = (
116         'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
117         )
118 
119     return params
120 
121 
122 def response(resp):
123     """Get response from google's search request"""
124     results = []
125 
126     detect_google_sorry(resp)
127 
128     # convert the text to dom
129     dom = html.fromstring(resp.text)
130 
131     for result in eval_xpath_list(dom, '//div[@class="xrnccd"]'):
132 
133         # The first <a> tag in the <article> contains the link to the
134         # article The href attribute of the <a> is a google internal link,
135         # we can't use.  The real link is hidden in the jslog attribute:
136         #
137         #   <a ...
138         #      jslog="95014; 4:https://www.cnn.com/.../index.html; track:click"
139         #      href="./articles/CAIiENu3nGS...?hl=en-US&amp;gl=US&amp;ceid=US%3Aen"
140         #      ... />
141 
142         jslog = eval_xpath_getindex(result, './article/a/@jslog', 0)
143         url = re.findall('http[^;]*', jslog)
144         if url:
145             url = url[0]
146         else:
147             # The real URL is base64 encoded in the json attribute:
148             # jslog="95014; 5:W251bGwsbnVsbCxudW...giXQ==; track:click"
149             jslog = jslog.split(";")[1].split(':')[1].strip()
150             try:
151                 padding = (4 -(len(jslog) % 4)) * "="
152                 jslog = b64decode(jslog + padding)
153             except binascii.Error:
154                 # URL cant be read, skip this result
155                 continue
156 
157             # now we have : b'[null, ... null,"https://www.cnn.com/.../index.html"]'
158             url = re.findall('http[^;"]*', str(jslog))[0]
159 
160         # the first <h3> tag in the <article> contains the title of the link
161         title = extract_text(eval_xpath(result, './article/h3[1]'))
162 
163         # the first <div> tag in the <article> contains the content of the link
164         content = extract_text(eval_xpath(result, './article/div[1]'))
165 
166         # the second <div> tag contains origin publisher and the publishing date
167 
168         pub_date = extract_text(eval_xpath(result, './article/div[2]//time'))
169         pub_origin = extract_text(eval_xpath(result, './article/div[2]//a'))
170 
171         pub_info = []
172         if pub_origin:
173             pub_info.append(pub_origin)
174         if pub_date:
175             # The pub_date is mostly a string like 'yesertday', not a real
176             # timezone date or time.  Therefore we can't use publishedDate.
177             pub_info.append(pub_date)
178         pub_info = ', '.join(pub_info)
179         if pub_info:
180             content = pub_info + ': ' + content
181 
182         # The image URL is located in a preceding sibling <img> tag, e.g.:
183         # "https://lh3.googleusercontent.com/DjhQh7DMszk.....z=-p-h100-w100"
184         # These URL are long but not personalized (double checked via tor).
185 
186         img_src = extract_text(result.xpath('preceding-sibling::a/figure/img/@src'))
187 
188         results.append({
189             'url':      url,
190             'title':    title,
191             'content':  content,
192             'img_src':  img_src,
193         })
194 
195     # return results
196     return results
197
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py
--- a/searx/engines/google_news.py
+++ b/searx/engines/google_news.py
@@ -19,6 +19,7 @@
 # pylint: disable=invalid-name, missing-function-docstring
 
 import binascii
+from datetime import datetime
 import re
 from urllib.parse import urlencode
 from base64 import b64decode
@@ -94,8 +95,8 @@
     ceid = "%s:%s" % (lang_info['country'], lang_info['language'])
 
     # google news redirects en to en-US
-    if lang_info['hl'] == 'en':
-        lang_info['hl'] = 'en-US'
+    if lang_info['params']['hl'] == 'en':
+        lang_info['params']['hl'] = 'en-US'
 
     # Very special to google-news compared to other google engines, the time
     # range is included in the search term.
@@ -115,6 +116,7 @@
     params['headers']['Accept'] = (
         'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
         )
+    params['headers']['Cookie'] = "CONSENT=YES+cb.%s-14-p0.en+F+941;" % datetime.now().strftime("%Y%m%d")
 
     return params

{"golden_diff": "diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py\n--- a/searx/engines/google_news.py\n+++ b/searx/engines/google_news.py\n@@ -19,6 +19,7 @@\n # pylint: disable=invalid-name, missing-function-docstring\n \n import binascii\n+from datetime import datetime\n import re\n from urllib.parse import urlencode\n from base64 import b64decode\n@@ -94,8 +95,8 @@\n     ceid = \"%s:%s\" % (lang_info['country'], lang_info['language'])\n \n     # google news redirects en to en-US\n-    if lang_info['hl'] == 'en':\n-        lang_info['hl'] = 'en-US'\n+    if lang_info['params']['hl'] == 'en':\n+        lang_info['params']['hl'] = 'en-US'\n \n     # Very special to google-news compared to other google engines, the time\n     # range is included in the search term.\n@@ -115,6 +116,7 @@\n     params['headers']['Accept'] = (\n         'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n         )\n+    params['headers']['Cookie'] = \"CONSENT=YES+cb.%s-14-p0.en+F+941;\" % datetime.now().strftime(\"%Y%m%d\")\n \n     return params\n", "issue": "Bug: google news engine\n**Version of SearXNG, commit number if you are using on master branch and stipulate if you forked SearXNG**\r\n\r\n7ef33c91e057defde55cc90d4123f284910723d9\r\n\r\n**How did you install SearXNG?**\r\ndocker\r\n\r\n**How To Reproduce**\r\n`!google_news time` crashes whatever the search language is\r\n\r\n**Technical report**\r\n\r\nError\r\n  * Error: KeyError\r\n  * Percentage: 100\r\n  * Parameters: `()`\r\n  * File name: `searx/engines/google_news.py:97`\r\n  * Function: `request`\r\n  * Code: `if lang_info['hl'] == 'en':`\r\n\r\nChecker\r\n  * simple: `KeyError `,\r\n  * lang_fr: `KeyError `,\r\n  * lang_en: `KeyError `,\n", "before_files": [{"content": "# SPDX-License-Identifier: AGPL-3.0-or-later\n# lint: pylint\n\"\"\"Google (News)\n\nFor detailed description of the *REST-full* API see: `Query Parameter\nDefinitions`_.  Not all parameters can be appied:\n\n- num_ : the number of search results is ignored\n- save_ : is ignored / Google-News results are always *SafeSearch*\n\n.. _Query Parameter Definitions:\n   https://developers.google.com/custom-search/docs/xml_results#WebSearch_Query_Parameter_Definitions\n\n.. _num: https://developers.google.com/custom-search/docs/xml_results#numsp\n.. _save: https://developers.google.com/custom-search/docs/xml_results#safesp\n\n\"\"\"\n\n# pylint: disable=invalid-name, missing-function-docstring\n\nimport binascii\nimport re\nfrom urllib.parse import urlencode\nfrom base64 import b64decode\nfrom lxml import html\n\nfrom searx import logger\nfrom searx.utils import (\n    eval_xpath,\n    eval_xpath_list,\n    eval_xpath_getindex,\n    extract_text,\n)\n\n# pylint: disable=unused-import\nfrom searx.engines.google import (\n    supported_languages_url,\n    _fetch_supported_languages,\n)\n# pylint: enable=unused-import\n\nfrom searx.engines.google import (\n    get_lang_info,\n    detect_google_sorry,\n)\n\n# about\nabout = {\n    \"website\": 'https://news.google.com',\n    \"wikidata_id\": 'Q12020',\n    \"official_api_documentation\": 'https://developers.google.com/custom-search',\n    \"use_official_api\": False,\n    \"require_api_key\": False,\n    \"results\": 'HTML',\n}\n\nlogger = logger.getChild('google news')\n\n# compared to other google engines google-news has a different time range\n# support.  The time range is included in the search term.\ntime_range_dict = {\n    'day': 'when:1d',\n    'week': 'when:7d',\n    'month': 'when:1m',\n    'year': 'when:1y',\n}\n\n# engine dependent config\n\ncategories = ['news']\npaging = False\nuse_locale_domain = True\ntime_range_support = True\n\n# Google-News results are always *SafeSearch*. Option 'safesearch' is set to\n# False here, otherwise checker will report safesearch-errors::\n#\n#  safesearch : results are identitical for safesearch=0 and safesearch=2\nsafesearch = False\n\ndef request(query, params):\n    \"\"\"Google-News search request\"\"\"\n\n    lang_info = get_lang_info(\n        # pylint: disable=undefined-variable\n        params, supported_languages, language_aliases, False\n    )\n    logger.debug(\n        \"HTTP header Accept-Language --> %s\", lang_info['headers']['Accept-Language'])\n\n    # google news has only one domain\n    lang_info['subdomain'] = 'news.google.com'\n\n    ceid = \"%s:%s\" % (lang_info['country'], lang_info['language'])\n\n    # google news redirects en to en-US\n    if lang_info['hl'] == 'en':\n        lang_info['hl'] = 'en-US'\n\n    # Very special to google-news compared to other google engines, the time\n    # range is included in the search term.\n    if params['time_range']:\n        query += ' ' + time_range_dict[params['time_range']]\n\n    query_url = 'https://' + lang_info['subdomain'] + '/search' + \"?\" + urlencode({\n        'q': query,\n        **lang_info['params'],\n        'ie': \"utf8\",\n        'oe': \"utf8\",\n        'gl': lang_info['country'],\n    }) + ('&ceid=%s' % ceid)  # ceid includes a ':' character which must not be urlencoded\n    params['url'] = query_url\n\n    params['headers'].update(lang_info['headers'])\n    params['headers']['Accept'] = (\n        'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n        )\n\n    return params\n\n\ndef response(resp):\n    \"\"\"Get response from google's search request\"\"\"\n    results = []\n\n    detect_google_sorry(resp)\n\n    # convert the text to dom\n    dom = html.fromstring(resp.text)\n\n    for result in eval_xpath_list(dom, '//div[@class=\"xrnccd\"]'):\n\n        # The first <a> tag in the <article> contains the link to the\n        # article The href attribute of the <a> is a google internal link,\n        # we can't use.  The real link is hidden in the jslog attribute:\n        #\n        #   <a ...\n        #      jslog=\"95014; 4:https://www.cnn.com/.../index.html; track:click\"\n        #      href=\"./articles/CAIiENu3nGS...?hl=en-US&amp;gl=US&amp;ceid=US%3Aen\"\n        #      ... />\n\n        jslog = eval_xpath_getindex(result, './article/a/@jslog', 0)\n        url = re.findall('http[^;]*', jslog)\n        if url:\n            url = url[0]\n        else:\n            # The real URL is base64 encoded in the json attribute:\n            # jslog=\"95014; 5:W251bGwsbnVsbCxudW...giXQ==; track:click\"\n            jslog = jslog.split(\";\")[1].split(':')[1].strip()\n            try:\n                padding = (4 -(len(jslog) % 4)) * \"=\"\n                jslog = b64decode(jslog + padding)\n            except binascii.Error:\n                # URL cant be read, skip this result\n                continue\n\n            # now we have : b'[null, ... null,\"https://www.cnn.com/.../index.html\"]'\n            url = re.findall('http[^;\"]*', str(jslog))[0]\n\n        # the first <h3> tag in the <article> contains the title of the link\n        title = extract_text(eval_xpath(result, './article/h3[1]'))\n\n        # the first <div> tag in the <article> contains the content of the link\n        content = extract_text(eval_xpath(result, './article/div[1]'))\n\n        # the second <div> tag contains origin publisher and the publishing date\n\n        pub_date = extract_text(eval_xpath(result, './article/div[2]//time'))\n        pub_origin = extract_text(eval_xpath(result, './article/div[2]//a'))\n\n        pub_info = []\n        if pub_origin:\n            pub_info.append(pub_origin)\n        if pub_date:\n            # The pub_date is mostly a string like 'yesertday', not a real\n            # timezone date or time.  Therefore we can't use publishedDate.\n            pub_info.append(pub_date)\n        pub_info = ', '.join(pub_info)\n        if pub_info:\n            content = pub_info + ': ' + content\n\n        # The image URL is located in a preceding sibling <img> tag, e.g.:\n        # \"https://lh3.googleusercontent.com/DjhQh7DMszk.....z=-p-h100-w100\"\n        # These URL are long but not personalized (double checked via tor).\n\n        img_src = extract_text(result.xpath('preceding-sibling::a/figure/img/@src'))\n\n        results.append({\n            'url':      url,\n            'title':    title,\n            'content':  content,\n            'img_src':  img_src,\n        })\n\n    # return results\n    return results\n", "path": "searx/engines/google_news.py"}], "after_files": [{"content": "# SPDX-License-Identifier: AGPL-3.0-or-later\n# lint: pylint\n\"\"\"Google (News)\n\nFor detailed description of the *REST-full* API see: `Query Parameter\nDefinitions`_.  Not all parameters can be appied:\n\n- num_ : the number of search results is ignored\n- save_ : is ignored / Google-News results are always *SafeSearch*\n\n.. _Query Parameter Definitions:\n   https://developers.google.com/custom-search/docs/xml_results#WebSearch_Query_Parameter_Definitions\n\n.. _num: https://developers.google.com/custom-search/docs/xml_results#numsp\n.. _save: https://developers.google.com/custom-search/docs/xml_results#safesp\n\n\"\"\"\n\n# pylint: disable=invalid-name, missing-function-docstring\n\nimport binascii\nfrom datetime import datetime\nimport re\nfrom urllib.parse import urlencode\nfrom base64 import b64decode\nfrom lxml import html\n\nfrom searx import logger\nfrom searx.utils import (\n    eval_xpath,\n    eval_xpath_list,\n    eval_xpath_getindex,\n    extract_text,\n)\n\n# pylint: disable=unused-import\nfrom searx.engines.google import (\n    supported_languages_url,\n    _fetch_supported_languages,\n)\n# pylint: enable=unused-import\n\nfrom searx.engines.google import (\n    get_lang_info,\n    detect_google_sorry,\n)\n\n# about\nabout = {\n    \"website\": 'https://news.google.com',\n    \"wikidata_id\": 'Q12020',\n    \"official_api_documentation\": 'https://developers.google.com/custom-search',\n    \"use_official_api\": False,\n    \"require_api_key\": False,\n    \"results\": 'HTML',\n}\n\nlogger = logger.getChild('google news')\n\n# compared to other google engines google-news has a different time range\n# support.  The time range is included in the search term.\ntime_range_dict = {\n    'day': 'when:1d',\n    'week': 'when:7d',\n    'month': 'when:1m',\n    'year': 'when:1y',\n}\n\n# engine dependent config\n\ncategories = ['news']\npaging = False\nuse_locale_domain = True\ntime_range_support = True\n\n# Google-News results are always *SafeSearch*. Option 'safesearch' is set to\n# False here, otherwise checker will report safesearch-errors::\n#\n#  safesearch : results are identitical for safesearch=0 and safesearch=2\nsafesearch = False\n\ndef request(query, params):\n    \"\"\"Google-News search request\"\"\"\n\n    lang_info = get_lang_info(\n        # pylint: disable=undefined-variable\n        params, supported_languages, language_aliases, False\n    )\n    logger.debug(\n        \"HTTP header Accept-Language --> %s\", lang_info['headers']['Accept-Language'])\n\n    # google news has only one domain\n    lang_info['subdomain'] = 'news.google.com'\n\n    ceid = \"%s:%s\" % (lang_info['country'], lang_info['language'])\n\n    # google news redirects en to en-US\n    if lang_info['params']['hl'] == 'en':\n        lang_info['params']['hl'] = 'en-US'\n\n    # Very special to google-news compared to other google engines, the time\n    # range is included in the search term.\n    if params['time_range']:\n        query += ' ' + time_range_dict[params['time_range']]\n\n    query_url = 'https://' + lang_info['subdomain'] + '/search' + \"?\" + urlencode({\n        'q': query,\n        **lang_info['params'],\n        'ie': \"utf8\",\n        'oe': \"utf8\",\n        'gl': lang_info['country'],\n    }) + ('&ceid=%s' % ceid)  # ceid includes a ':' character which must not be urlencoded\n    params['url'] = query_url\n\n    params['headers'].update(lang_info['headers'])\n    params['headers']['Accept'] = (\n        'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n        )\n    params['headers']['Cookie'] = \"CONSENT=YES+cb.%s-14-p0.en+F+941;\" % datetime.now().strftime(\"%Y%m%d\")\n\n    return params\n\n\ndef response(resp):\n    \"\"\"Get response from google's search request\"\"\"\n    results = []\n\n    detect_google_sorry(resp)\n\n    # convert the text to dom\n    dom = html.fromstring(resp.text)\n\n    for result in eval_xpath_list(dom, '//div[@class=\"xrnccd\"]'):\n\n        # The first <a> tag in the <article> contains the link to the\n        # article The href attribute of the <a> is a google internal link,\n        # we can't use.  The real link is hidden in the jslog attribute:\n        #\n        #   <a ...\n        #      jslog=\"95014; 4:https://www.cnn.com/.../index.html; track:click\"\n        #      href=\"./articles/CAIiENu3nGS...?hl=en-US&amp;gl=US&amp;ceid=US%3Aen\"\n        #      ... />\n\n        jslog = eval_xpath_getindex(result, './article/a/@jslog', 0)\n        url = re.findall('http[^;]*', jslog)\n        if url:\n            url = url[0]\n        else:\n            # The real URL is base64 encoded in the json attribute:\n            # jslog=\"95014; 5:W251bGwsbnVsbCxudW...giXQ==; track:click\"\n            jslog = jslog.split(\";\")[1].split(':')[1].strip()\n            try:\n                padding = (4 -(len(jslog) % 4)) * \"=\"\n                jslog = b64decode(jslog + padding)\n            except binascii.Error:\n                # URL cant be read, skip this result\n                continue\n\n            # now we have : b'[null, ... null,\"https://www.cnn.com/.../index.html\"]'\n            url = re.findall('http[^;\"]*', str(jslog))[0]\n\n        # the first <h3> tag in the <article> contains the title of the link\n        title = extract_text(eval_xpath(result, './article/h3[1]'))\n\n        # the first <div> tag in the <article> contains the content of the link\n        content = extract_text(eval_xpath(result, './article/div[1]'))\n\n        # the second <div> tag contains origin publisher and the publishing date\n\n        pub_date = extract_text(eval_xpath(result, './article/div[2]//time'))\n        pub_origin = extract_text(eval_xpath(result, './article/div[2]//a'))\n\n        pub_info = []\n        if pub_origin:\n            pub_info.append(pub_origin)\n        if pub_date:\n            # The pub_date is mostly a string like 'yesertday', not a real\n            # timezone date or time.  Therefore we can't use publishedDate.\n            pub_info.append(pub_date)\n        pub_info = ', '.join(pub_info)\n        if pub_info:\n            content = pub_info + ': ' + content\n\n        # The image URL is located in a preceding sibling <img> tag, e.g.:\n        # \"https://lh3.googleusercontent.com/DjhQh7DMszk.....z=-p-h100-w100\"\n        # These URL are long but not personalized (double checked via tor).\n\n        img_src = extract_text(result.xpath('preceding-sibling::a/figure/img/@src'))\n\n        results.append({\n            'url':      url,\n            'title':    title,\n            'content':  content,\n            'img_src':  img_src,\n        })\n\n    # return results\n    return results\n", "path": "searx/engines/google_news.py"}]}