<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/searx/engines/google.py, branch master</title>
<subtitle>Free internet metasearch engine which aggregates results from various search services and databases</subtitle>
<id>https://git.ikboikov.net/searxng/atom?h=master</id>
<link rel='self' href='https://git.ikboikov.net/searxng/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/'/>
<updated>2026-09-04T08:16:09Z</updated>
<entry>
<title>[mod] network: migrate to curl_cffi</title>
<updated>2026-09-04T08:16:09Z</updated>
<author>
<name>vojkovic</name>
<email>git@vojk.au</email>
</author>
<published>2026-09-03T14:19:54Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=be836e614a2f2e7512e2e1915a0bc37d51ee865c'/>
<id>urn:sha1:be836e614a2f2e7512e2e1915a0bc37d51ee865c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[fix] google: use Nokia UA (#6546)</title>
<updated>2026-08-22T03:00:06Z</updated>
<author>
<name>vojkovic</name>
<email>git@vojk.au</email>
</author>
<published>2026-08-20T14:39:00Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=a4cb7df053ea1ebb657ba0d83ecc6b7623b0ff04'/>
<id>urn:sha1:a4cb7df053ea1ebb657ba0d83ecc6b7623b0ff04</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[chore] Google (HTML) engine: remove obsolete GSA User-Agents (#6366)</title>
<updated>2026-07-05T10:07:23Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2026-07-05T10:07:23Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=fd5eb84a378e30f90e363ace0223ca9e609f12f3'/>
<id>urn:sha1:fd5eb84a378e30f90e363ace0223ca9e609f12f3</id>
<content type='text'>
The GSA headers that were introduced in PR #5644 unfortunately no longer
work (#6359).

The Google engines

- google.py
- google_videos.py

do not work anymore either, but we'll leave it in the code for now:

- In google.py, central functions like get_google_info(..) are provided, which
  are also used by other modules.
- We will probably need a Google HTML (and video) engine again very soon.

Related:

- https://github.com/searxng/searxng/issues/6359
- https://github.com/searxng/searxng/pull/6364

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[feat] engines: add google cse engine (#6364)</title>
<updated>2026-07-05T09:50:23Z</updated>
<author>
<name>vojkovic</name>
<email>git@vojk.au</email>
</author>
<published>2026-07-04T11:58:28Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=1cdf01a71916e67352eb7e6d60ddfdeb62f5f1a2'/>
<id>urn:sha1:1cdf01a71916e67352eb7e6d60ddfdeb62f5f1a2</id>
<content type='text'>
Adds a new google cse engine as an alternative to the currently broken html
google engine.

It works by generating a token which is cached for 1 hour and it only uses the
public CSE id from blackle.com.  We do have two others but I think just
hardcoding one will be enough.

Will be broken in 2027 due to google deprecating it but I it will be good while
it lasts.

I found I can get up to 20 results per page. Setting safesearch and language
works and I just copied the traits from the google engine.

Also set old google engine as inactive as it is completely broken for now.
</content>
</entry>
<entry>
<title>[fix] set language_support for engines with languages in traits (#6258)</title>
<updated>2026-06-15T08:52:00Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2026-06-15T06:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=cf1410af8d794793c8af02b97d3e1cf3bc7a7dda'/>
<id>urn:sha1:cf1410af8d794793c8af02b97d3e1cf3bc7a7dda</id>
<content type='text'>
In the past, the engine option ``language_support`` was not consistently
maintained; with this patch, a ValueError is now thrown if an engine has
languages in its traits but language_support is not set to True.

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[fix] google: improve CAPTCHA detection (#5922)</title>
<updated>2026-05-15T07:25:13Z</updated>
<author>
<name>Arnaud Jeannin</name>
<email>arnaudjeannin@outlook.com</email>
</author>
<published>2026-05-15T07:25:13Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=790683bbd738dcf1e725f748f263a6fa43959305'/>
<id>urn:sha1:790683bbd738dcf1e725f748f263a6fa43959305</id>
<content type='text'>
- Detect HTTP 302 responses (Google redirecting to /sorry/index
  without the HTTP client following the redirect)
- Detect short HTML responses (&lt;2000 bytes) containing "/sorry/"
  links (meta-refresh or JS redirect variants)

Instances with rotating IPs can set the `suspended_times.SearxEngineCaptcha` to
0 in the search settings [1], the next request will typically use a different
outgoing IP when rotating proxies are configured

[1] https://docs.searxng.org/admin/settings/settings_search.html</content>
</entry>
<entry>
<title>[fix] google engine - don't set __Secure-ENID in the HTTP header (#5894)</title>
<updated>2026-03-24T14:16:47Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2026-03-24T14:16:47Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=c4f51aa4ac3a232bd19fbc828cac7b3c5282440d'/>
<id>urn:sha1:c4f51aa4ac3a232bd19fbc828cac7b3c5282440d</id>
<content type='text'>
PR #5892 only deepends on the UA and the __Secure-ENID is not needed [1].

[1] https://github.com/searxng/searxng/pull/5892#issuecomment-4114835195

Suggested-by: @yeyuchen198

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[fix] google: switch to using "Google App" for Android useragent (#5892)</title>
<updated>2026-03-23T13:55:48Z</updated>
<author>
<name>mg95</name>
<email>git@esen.gay</email>
</author>
<published>2026-03-23T13:55:48Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=2c1ce3bd37a2548d7e8a96127d19d7b6164d746b'/>
<id>urn:sha1:2c1ce3bd37a2548d7e8a96127d19d7b6164d746b</id>
<content type='text'>
I found a bypass using the Android Google App this time. However, unlike the iPhone GSA method, this one does have rate limits. Although it took a couple of hundred consecutive requests to trigger them.</content>
</entry>
<entry>
<title>[fix] google engine: Result image thumbnails</title>
<updated>2026-03-16T22:35:33Z</updated>
<author>
<name>Aadniz</name>
<email>8147434+Aadniz@users.noreply.github.com</email>
</author>
<published>2026-03-15T18:16:03Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=4c4ed4b198a7877e92589bd774f94a570fda9aa7'/>
<id>urn:sha1:4c4ed4b198a7877e92589bd774f94a570fda9aa7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[fix] google engines: update XPaths for modern mobile UI (#5836)</title>
<updated>2026-03-10T08:05:54Z</updated>
<author>
<name>SeriousConcept1134</name>
<email>132124125+SeriousConcept1134@users.noreply.github.com</email>
</author>
<published>2026-03-10T08:05:54Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=8b95b2058be41580270f1dc348847c3342ee129b'/>
<id>urn:sha1:8b95b2058be41580270f1dc348847c3342ee129b</id>
<content type='text'>
Google recently changed the DOM structure for mobile-centric responses, causing the `google_videos` engine to return zero results and the main `google` engine to drop the majority of its results (due to missing snippets or failed URL parsing). These changes restore the functionality and improve the result count for both engines.

This patch updates the parsing logic for both the `google` and `google_videos` engines to handle the modern HTML structure returned by Google when using GSA (Google Search App) User-Agents.

**Specific changes include:**

* **Google Videos (`gov`)**:
    * Updated title XPath to support `role="heading"`.
    * Improved URL extraction to correctly decode Google redirectors (`/url?q=...`) using `unquote`.
    * Added support for the `WRu9Cd` class to capture publication metadata (author/date).
    * Broadened thumbnail search and added a fallback to YouTube's `hqdefault.jpg`.

* **Google Web**:
    * Relaxed the strict snippet (`content`) requirement. Valid results are no longer discarded if a snippet is missing in the mobile UI.
    * Hardened URL extraction to handle both direct and redirected URLs safely.
    * Improved thumbnail extraction by searching the entire result block.</content>
</entry>
</feed>
