google.html 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. <!DOCTYPE html>
  2. <html lang="en" data-content_root="../../../">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Google Engines &#8212; SearXNG Documentation (2025.5.2+590b21165)</title>
  8. <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=6625fa76" />
  9. <link rel="stylesheet" type="text/css" href="../../../_static/searxng.css?v=52e4ff28" />
  10. <script src="../../../_static/documentation_options.js?v=8c00f3b4"></script>
  11. <script src="../../../_static/doctools.js?v=9a2dae69"></script>
  12. <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
  13. <script data-project="searxng" data-version="2025.5.2+590b21165" src="../../../_static/describe_version.js?v=fa7f30d0"></script>
  14. <link rel="index" title="Index" href="../../../genindex.html" />
  15. <link rel="search" title="Search" href="../../../search.html" />
  16. <link rel="next" title="Hugging Face" href="huggingface.html" />
  17. <link rel="prev" title="GitLab" href="gitlab.html" />
  18. </head><body>
  19. <div class="related" role="navigation" aria-label="Related">
  20. <h3>Navigation</h3>
  21. <ul>
  22. <li class="right" style="margin-right: 10px">
  23. <a href="../../../genindex.html" title="General Index"
  24. accesskey="I">index</a></li>
  25. <li class="right" >
  26. <a href="../../../py-modindex.html" title="Python Module Index"
  27. >modules</a> |</li>
  28. <li class="right" >
  29. <a href="huggingface.html" title="Hugging Face"
  30. accesskey="N">next</a> |</li>
  31. <li class="right" >
  32. <a href="gitlab.html" title="GitLab"
  33. accesskey="P">previous</a> |</li>
  34. <li class="nav-item nav-item-0"><a href="../../../index.html">SearXNG Documentation (2025.5.2+590b21165)</a> &#187;</li>
  35. <li class="nav-item nav-item-1"><a href="../../index.html" >Developer documentation</a> &#187;</li>
  36. <li class="nav-item nav-item-2"><a href="../index.html" accesskey="U">Engine Implementations</a> &#187;</li>
  37. <li class="nav-item nav-item-this"><a href="">Google Engines</a></li>
  38. </ul>
  39. </div>
  40. <div class="document">
  41. <div class="documentwrapper">
  42. <div class="bodywrapper">
  43. <div class="body" role="main">
  44. <section id="google-engines">
  45. <span id="id1"></span><h1>Google Engines<a class="headerlink" href="#google-engines" title="Link to this heading">¶</a></h1>
  46. <nav class="contents local" id="contents">
  47. <ul class="simple">
  48. <li><p><a class="reference internal" href="#google-api" id="id6">Google API</a></p></li>
  49. <li><p><a class="reference internal" href="#module-searx.engines.google" id="id7">Google WEB</a></p></li>
  50. <li><p><a class="reference internal" href="#google-autocomplete" id="id8">Google Autocomplete</a></p></li>
  51. <li><p><a class="reference internal" href="#module-searx.engines.google_images" id="id9">Google Images</a></p></li>
  52. <li><p><a class="reference internal" href="#module-searx.engines.google_videos" id="id10">Google Videos</a></p></li>
  53. <li><p><a class="reference internal" href="#module-searx.engines.google_news" id="id11">Google News</a></p></li>
  54. <li><p><a class="reference internal" href="#module-searx.engines.google_scholar" id="id12">Google Scholar</a></p></li>
  55. </ul>
  56. </nav>
  57. <section id="google-api">
  58. <span id="id2"></span><h2><a class="toc-backref" href="#id6" role="doc-backlink">Google API</a><a class="headerlink" href="#google-api" title="Link to this heading">¶</a></h2>
  59. <p>SearXNG’s implementation of the Google API is mainly done in
  60. <a class="reference internal" href="#searx.engines.google.get_google_info" title="searx.engines.google.get_google_info"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_google_info</span></code></a>.</p>
  61. <p>For detailed description of the <em>REST-full</em> API see: <a class="reference external" href="https://developers.google.com/custom-search/docs/xml_results#WebSearch_Query_Parameter_Definitions">Query Parameter
  62. Definitions</a>. The linked API documentation can sometimes be helpful during
  63. reverse engineering. However, we cannot use it in the freely accessible WEB
  64. services; not all parameters can be applied and some engines are more <em>special</em>
  65. than other (e.g. <a class="reference internal" href="#google-news-engine"><span class="std std-ref">Google News</span></a>).</p>
  66. </section>
  67. <section id="module-searx.engines.google">
  68. <span id="google-web"></span><span id="google-web-engine"></span><h2><a class="toc-backref" href="#id7" role="doc-backlink">Google WEB</a><a class="headerlink" href="#module-searx.engines.google" title="Link to this heading">¶</a></h2>
  69. <p>This is the implementation of the Google WEB engine. Some of this
  70. implementations (manly the <a class="reference internal" href="#searx.engines.google.get_google_info" title="searx.engines.google.get_google_info"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_google_info</span></code></a>) are shared by other
  71. engines:</p>
  72. <ul class="simple">
  73. <li><p><a class="reference internal" href="#google-images-engine"><span class="std std-ref">Google Images</span></a></p></li>
  74. <li><p><a class="reference internal" href="#google-news-engine"><span class="std std-ref">Google News</span></a></p></li>
  75. <li><p><a class="reference internal" href="#google-videos-engine"><span class="std std-ref">Google Videos</span></a></p></li>
  76. <li><p><a class="reference internal" href="#google-scholar-engine"><span class="std std-ref">Google Scholar</span></a></p></li>
  77. <li><p><a class="reference internal" href="#google-autocomplete"><span class="std std-ref">Google Autocomplete</span></a></p></li>
  78. </ul>
  79. <dl class="py data">
  80. <dt class="sig sig-object py" id="searx.engines.google.max_page">
  81. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">max_page</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">50</span></em><a class="headerlink" href="#searx.engines.google.max_page" title="Link to this definition">¶</a></dt>
  82. <dd><p><a class="reference external" href="https://github.com/searxng/searxng/issues/2982">Google max 50 pages</a></p>
  83. </dd></dl>
  84. <dl class="py function">
  85. <dt class="sig sig-object py" id="searx.engines.google.ui_async">
  86. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">ui_async</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">start</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><span class="pre">int</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></span></span><a class="reference internal" href="../../../_modules/searx/engines/google.html#ui_async"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google.ui_async" title="Link to this definition">¶</a></dt>
  87. <dd><p>Format of the response from UI’s async request.</p>
  88. <ul class="simple">
  89. <li><p><code class="docutils literal notranslate"><span class="pre">arc_id:&lt;...&gt;,use_ac:true,_fmt:prog</span></code></p></li>
  90. </ul>
  91. <p>The arc_id is random generated every hour.</p>
  92. </dd></dl>
  93. <dl class="py function">
  94. <dt class="sig sig-object py" id="searx.engines.google.get_google_info">
  95. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">get_google_info</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">params</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eng_traits</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google.html#get_google_info"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google.get_google_info" title="Link to this definition">¶</a></dt>
  96. <dd><p>Composing various (language) properties for the google engines (<a class="reference internal" href="#google-api"><span class="std std-ref">Google API</span></a>).</p>
  97. <p>This function is called by the various google engines (<a class="reference internal" href="#google-web-engine"><span class="std std-ref">Google WEB</span></a>, <a class="reference internal" href="#google-images-engine"><span class="std std-ref">Google Images</span></a>, <a class="reference internal" href="#google-news-engine"><span class="std std-ref">Google News</span></a> and
  98. <a class="reference internal" href="#google-videos-engine"><span class="std std-ref">Google Videos</span></a>).</p>
  99. <dl class="field-list simple">
  100. <dt class="field-odd">Parameters<span class="colon">:</span></dt>
  101. <dd class="field-odd"><ul class="simple">
  102. <li><p><strong>param</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)"><em>dict</em></a>) – Request parameters of the engine. At least
  103. a <code class="docutils literal notranslate"><span class="pre">searxng_locale</span></code> key should be in the dictionary.</p></li>
  104. <li><p><strong>eng_traits</strong> – Engine’s traits fetched from google preferences
  105. (<a class="reference internal" href="../enginelib.html#searx.enginelib.traits.EngineTraits" title="searx.enginelib.traits.EngineTraits"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.enginelib.traits.EngineTraits</span></code></a>)</p></li>
  106. </ul>
  107. </dd>
  108. <dt class="field-even">Return type<span class="colon">:</span></dt>
  109. <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)">dict</a></p>
  110. </dd>
  111. <dt class="field-odd">Returns<span class="colon">:</span></dt>
  112. <dd class="field-odd"><p><p>Py-Dictionary with the key/value pairs:</p>
  113. <dl class="simple">
  114. <dt>language:</dt><dd><p>The language code that is used by google (e.g. <code class="docutils literal notranslate"><span class="pre">lang_en</span></code> or
  115. <code class="docutils literal notranslate"><span class="pre">lang_zh-TW</span></code>)</p>
  116. </dd>
  117. <dt>country:</dt><dd><p>The country code that is used by google (e.g. <code class="docutils literal notranslate"><span class="pre">US</span></code> or <code class="docutils literal notranslate"><span class="pre">TW</span></code>)</p>
  118. </dd>
  119. <dt>locale:</dt><dd><p>A instance of <a class="reference external" href="https://babel.readthedocs.io/en/latest/api/core.html#babel.core.Locale" title="(in Babel v2.2)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">babel.core.Locale</span></code></a> build from the
  120. <code class="docutils literal notranslate"><span class="pre">searxng_locale</span></code> value.</p>
  121. </dd>
  122. <dt>subdomain:</dt><dd><p>Google subdomain <code class="xref py py-obj docutils literal notranslate"><span class="pre">google_domains</span></code> that fits to the country
  123. code.</p>
  124. </dd>
  125. <dt>params:</dt><dd><p>Py-Dictionary with additional request arguments (can be passed to
  126. <a class="reference external" href="https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode" title="(in Python v3.13)"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlencode()</span></code></a>).</p>
  127. <ul class="simple">
  128. <li><p><code class="docutils literal notranslate"><span class="pre">hl</span></code> parameter: specifies the interface language of user interface.</p></li>
  129. <li><p><code class="docutils literal notranslate"><span class="pre">lr</span></code> parameter: restricts search results to documents written in
  130. a particular language.</p></li>
  131. <li><p><code class="docutils literal notranslate"><span class="pre">cr</span></code> parameter: restricts search results to documents
  132. originating in a particular country.</p></li>
  133. <li><p><code class="docutils literal notranslate"><span class="pre">ie</span></code> parameter: sets the character encoding scheme that should
  134. be used to interpret the query string (‘utf8’).</p></li>
  135. <li><p><code class="docutils literal notranslate"><span class="pre">oe</span></code> parameter: sets the character encoding scheme that should
  136. be used to decode the XML result (‘utf8’).</p></li>
  137. </ul>
  138. </dd>
  139. <dt>headers:</dt><dd><p>Py-Dictionary with additional HTTP headers (can be passed to
  140. request’s headers)</p>
  141. <ul class="simple">
  142. <li><p><code class="docutils literal notranslate"><span class="pre">Accept:</span> <span class="pre">'*/*</span></code></p></li>
  143. </ul>
  144. </dd>
  145. </dl>
  146. </p>
  147. </dd>
  148. </dl>
  149. </dd></dl>
  150. <dl class="py function">
  151. <dt class="sig sig-object py" id="searx.engines.google.request">
  152. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google.html#request"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google.request" title="Link to this definition">¶</a></dt>
  153. <dd><p>Google search request</p>
  154. </dd></dl>
  155. <dl class="py function">
  156. <dt class="sig sig-object py" id="searx.engines.google.response">
  157. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resp</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="../index.html#searx.result_types.EngineResults" title="searx.result_types.EngineResults"><span class="pre">EngineResults</span></a></span></span><a class="reference internal" href="../../../_modules/searx/engines/google.html#response"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google.response" title="Link to this definition">¶</a></dt>
  158. <dd><p>Get response from google’s search request</p>
  159. </dd></dl>
  160. <dl class="py function">
  161. <dt class="sig sig-object py" id="searx.engines.google.fetch_traits">
  162. <span class="sig-prename descclassname"><span class="pre">searx.engines.google.</span></span><span class="sig-name descname"><span class="pre">fetch_traits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">engine_traits</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../enginelib.html#searx.enginelib.traits.EngineTraits" title="searx.enginelib.traits.EngineTraits"><span class="pre">EngineTraits</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">add_domains</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google.html#fetch_traits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google.fetch_traits" title="Link to this definition">¶</a></dt>
  163. <dd><p>Fetch languages from Google.</p>
  164. </dd></dl>
  165. </section>
  166. <section id="google-autocomplete">
  167. <span id="id3"></span><h2><a class="toc-backref" href="#id8" role="doc-backlink">Google Autocomplete</a><a class="headerlink" href="#google-autocomplete" title="Link to this heading">¶</a></h2>
  168. <dl class="py function">
  169. <dt class="sig sig-object py" id="searx.autocomplete.google_complete">
  170. <span class="sig-prename descclassname"><span class="pre">searx.autocomplete.</span></span><span class="sig-name descname"><span class="pre">google_complete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sxng_locale</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/autocomplete.html#google_complete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.autocomplete.google_complete" title="Link to this definition">¶</a></dt>
  171. <dd><p>Autocomplete from Google. Supports Google’s languages and subdomains
  172. (<a class="reference internal" href="#searx.engines.google.get_google_info" title="searx.engines.google.get_google_info"><code class="xref py py-obj docutils literal notranslate"><span class="pre">searx.engines.google.get_google_info</span></code></a>) by using the async REST
  173. API:</p>
  174. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>https://{subdomain}/complete/search?{args}
  175. </pre></div>
  176. </div>
  177. </dd></dl>
  178. </section>
  179. <section id="module-searx.engines.google_images">
  180. <span id="google-images"></span><span id="google-images-engine"></span><h2><a class="toc-backref" href="#id9" role="doc-backlink">Google Images</a><a class="headerlink" href="#module-searx.engines.google_images" title="Link to this heading">¶</a></h2>
  181. <p>This is the implementation of the Google Images engine using the internal
  182. Google API used by the Google Go Android app.</p>
  183. <p>This internal API offer results in</p>
  184. <ul class="simple">
  185. <li><p>JSON (<code class="docutils literal notranslate"><span class="pre">_fmt:json</span></code>)</p></li>
  186. <li><p><a class="reference external" href="https://en.wikipedia.org/wiki/Protocol_Buffers">Protobuf</a> (<code class="docutils literal notranslate"><span class="pre">_fmt:pb</span></code>)</p></li>
  187. <li><p><a class="reference external" href="https://en.wikipedia.org/wiki/Protocol_Buffers">Protobuf</a> compressed? (<code class="docutils literal notranslate"><span class="pre">_fmt:pc</span></code>)</p></li>
  188. <li><p>HTML (<code class="docutils literal notranslate"><span class="pre">_fmt:html</span></code>)</p></li>
  189. <li><p><a class="reference external" href="https://en.wikipedia.org/wiki/Protocol_Buffers">Protobuf</a> encoded in JSON (<code class="docutils literal notranslate"><span class="pre">_fmt:jspb</span></code>).</p></li>
  190. </ul>
  191. <dl class="py data">
  192. <dt class="sig sig-object py" id="searx.engines.google_images.max_page">
  193. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_images.</span></span><span class="sig-name descname"><span class="pre">max_page</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">50</span></em><a class="headerlink" href="#searx.engines.google_images.max_page" title="Link to this definition">¶</a></dt>
  194. <dd><p><a class="reference external" href="https://github.com/searxng/searxng/issues/2982">Google max 50 pages</a></p>
  195. </dd></dl>
  196. <dl class="py function">
  197. <dt class="sig sig-object py" id="searx.engines.google_images.request">
  198. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_images.</span></span><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_images.html#request"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_images.request" title="Link to this definition">¶</a></dt>
  199. <dd><p>Google-Image search request</p>
  200. </dd></dl>
  201. <dl class="py function">
  202. <dt class="sig sig-object py" id="searx.engines.google_images.response">
  203. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_images.</span></span><span class="sig-name descname"><span class="pre">response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_images.html#response"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_images.response" title="Link to this definition">¶</a></dt>
  204. <dd><p>Get response from google’s search request</p>
  205. </dd></dl>
  206. </section>
  207. <section id="module-searx.engines.google_videos">
  208. <span id="google-videos"></span><span id="google-videos-engine"></span><h2><a class="toc-backref" href="#id10" role="doc-backlink">Google Videos</a><a class="headerlink" href="#module-searx.engines.google_videos" title="Link to this heading">¶</a></h2>
  209. <p>This is the implementation of the Google Videos engine.</p>
  210. <div class="admonition-content-security-policy-csp admonition">
  211. <p class="admonition-title">Content-Security-Policy (CSP)</p>
  212. <p>This engine needs to allow images from the <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">data URLs</a> (prefixed with the
  213. <code class="docutils literal notranslate"><span class="pre">data:</span></code> scheme):</p>
  214. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Header</span> <span class="nb">set</span> <span class="n">Content</span><span class="o">-</span><span class="n">Security</span><span class="o">-</span><span class="n">Policy</span> <span class="s2">&quot;img-src &#39;self&#39; data: ;&quot;</span>
  215. </pre></div>
  216. </div>
  217. </div>
  218. <dl class="py data">
  219. <dt class="sig sig-object py" id="searx.engines.google_videos.max_page">
  220. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_videos.</span></span><span class="sig-name descname"><span class="pre">max_page</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">50</span></em><a class="headerlink" href="#searx.engines.google_videos.max_page" title="Link to this definition">¶</a></dt>
  221. <dd><p><cite>Google: max 50 pages</cite></p>
  222. </dd></dl>
  223. <dl class="py function">
  224. <dt class="sig sig-object py" id="searx.engines.google_videos.request">
  225. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_videos.</span></span><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_videos.html#request"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_videos.request" title="Link to this definition">¶</a></dt>
  226. <dd><p>Google-Video search request</p>
  227. </dd></dl>
  228. <dl class="py function">
  229. <dt class="sig sig-object py" id="searx.engines.google_videos.response">
  230. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_videos.</span></span><span class="sig-name descname"><span class="pre">response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_videos.html#response"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_videos.response" title="Link to this definition">¶</a></dt>
  231. <dd><p>Get response from google’s search request</p>
  232. </dd></dl>
  233. </section>
  234. <section id="module-searx.engines.google_news">
  235. <span id="google-news"></span><span id="google-news-engine"></span><h2><a class="toc-backref" href="#id11" role="doc-backlink">Google News</a><a class="headerlink" href="#module-searx.engines.google_news" title="Link to this heading">¶</a></h2>
  236. <p>This is the implementation of the Google News engine.</p>
  237. <p>Google News has a different region handling compared to Google WEB.</p>
  238. <ul class="simple">
  239. <li><p>the <code class="docutils literal notranslate"><span class="pre">ceid</span></code> argument has to be set (<a class="reference internal" href="#searx.engines.google_news.ceid_list" title="searx.engines.google_news.ceid_list"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ceid_list</span></code></a>)</p></li>
  240. <li><p>the <a class="reference external" href="https://developers.google.com/custom-search/docs/xml_results#hlsp">hl</a> argument has to be set correctly (and different to Google WEB)</p></li>
  241. <li><p>the <a class="reference external" href="https://developers.google.com/custom-search/docs/xml_results#glsp">gl</a> argument is mandatory</p></li>
  242. </ul>
  243. <p>If one of this argument is not set correctly, the request is redirected to
  244. CONSENT dialog:</p>
  245. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>https://consent.google.com/m?continue=
  246. </pre></div>
  247. </div>
  248. <p>The google news API ignores some parameters from the common <a class="reference internal" href="#google-api"><span class="std std-ref">Google API</span></a>:</p>
  249. <ul class="simple">
  250. <li><p><a class="reference external" href="https://developers.google.com/custom-search/docs/xml_results#numsp">num</a> : the number of search results is ignored / there is no paging all
  251. results for a query term are in the first response.</p></li>
  252. <li><p><a class="reference external" href="https://developers.google.com/custom-search/docs/xml_results#safesp">save</a> : is ignored / Google-News results are always <em>SafeSearch</em></p></li>
  253. </ul>
  254. <dl class="py function">
  255. <dt class="sig sig-object py" id="searx.engines.google_news.request">
  256. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_news.</span></span><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_news.html#request"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_news.request" title="Link to this definition">¶</a></dt>
  257. <dd><p>Google-News search request</p>
  258. </dd></dl>
  259. <dl class="py function">
  260. <dt class="sig sig-object py" id="searx.engines.google_news.response">
  261. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_news.</span></span><span class="sig-name descname"><span class="pre">response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_news.html#response"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_news.response" title="Link to this definition">¶</a></dt>
  262. <dd><p>Get response from google’s search request</p>
  263. </dd></dl>
  264. <dl class="py data">
  265. <dt class="sig sig-object py" id="searx.engines.google_news.ceid_list">
  266. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_news.</span></span><span class="sig-name descname"><span class="pre">ceid_list</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['AE:ar',</span> <span class="pre">'AR:es-419',</span> <span class="pre">'AT:de',</span> <span class="pre">'AU:en',</span> <span class="pre">'BD:bn',</span> <span class="pre">'BE:fr',</span> <span class="pre">'BE:nl',</span> <span class="pre">'BG:bg',</span> <span class="pre">'BR:pt-419',</span> <span class="pre">'BW:en',</span> <span class="pre">'CA:en',</span> <span class="pre">'CA:fr',</span> <span class="pre">'CH:de',</span> <span class="pre">'CH:fr',</span> <span class="pre">'CL:es-419',</span> <span class="pre">'CN:zh-Hans',</span> <span class="pre">'CO:es-419',</span> <span class="pre">'CU:es-419',</span> <span class="pre">'CZ:cs',</span> <span class="pre">'DE:de',</span> <span class="pre">'EG:ar',</span> <span class="pre">'ES:es',</span> <span class="pre">'ET:en',</span> <span class="pre">'FR:fr',</span> <span class="pre">'GB:en',</span> <span class="pre">'GH:en',</span> <span class="pre">'GR:el',</span> <span class="pre">'HK:zh-Hant',</span> <span class="pre">'HU:hu',</span> <span class="pre">'ID:en',</span> <span class="pre">'ID:id',</span> <span class="pre">'IE:en',</span> <span class="pre">'IL:en',</span> <span class="pre">'IL:he',</span> <span class="pre">'IN:bn',</span> <span class="pre">'IN:en',</span> <span class="pre">'IN:hi',</span> <span class="pre">'IN:ml',</span> <span class="pre">'IN:mr',</span> <span class="pre">'IN:ta',</span> <span class="pre">'IN:te',</span> <span class="pre">'IT:it',</span> <span class="pre">'JP:ja',</span> <span class="pre">'KE:en',</span> <span class="pre">'KR:ko',</span> <span class="pre">'LB:ar',</span> <span class="pre">'LT:lt',</span> <span class="pre">'LV:en',</span> <span class="pre">'LV:lv',</span> <span class="pre">'MA:fr',</span> <span class="pre">'MX:es-419',</span> <span class="pre">'MY:en',</span> <span class="pre">'NA:en',</span> <span class="pre">'NG:en',</span> <span class="pre">'NL:nl',</span> <span class="pre">'NO:no',</span> <span class="pre">'NZ:en',</span> <span class="pre">'PE:es-419',</span> <span class="pre">'PH:en',</span> <span class="pre">'PK:en',</span> <span class="pre">'PL:pl',</span> <span class="pre">'PT:pt-150',</span> <span class="pre">'RO:ro',</span> <span class="pre">'RS:sr',</span> <span class="pre">'RU:ru',</span> <span class="pre">'SA:ar',</span> <span class="pre">'SE:sv',</span> <span class="pre">'SG:en',</span> <span class="pre">'SI:sl',</span> <span class="pre">'SK:sk',</span> <span class="pre">'SN:fr',</span> <span class="pre">'TH:th',</span> <span class="pre">'TR:tr',</span> <span class="pre">'TW:zh-Hant',</span> <span class="pre">'TZ:en',</span> <span class="pre">'UA:ru',</span> <span class="pre">'UA:uk',</span> <span class="pre">'UG:en',</span> <span class="pre">'US:en',</span> <span class="pre">'US:es-419',</span> <span class="pre">'VE:es-419',</span> <span class="pre">'VN:vi',</span> <span class="pre">'ZA:en',</span> <span class="pre">'ZW:en']</span></em><a class="headerlink" href="#searx.engines.google_news.ceid_list" title="Link to this definition">¶</a></dt>
  267. <dd><p>List of region/language combinations supported by Google News. Values of the
  268. <code class="docutils literal notranslate"><span class="pre">ceid</span></code> argument of the Google News REST API.</p>
  269. </dd></dl>
  270. </section>
  271. <section id="module-searx.engines.google_scholar">
  272. <span id="google-scholar"></span><span id="google-scholar-engine"></span><h2><a class="toc-backref" href="#id12" role="doc-backlink">Google Scholar</a><a class="headerlink" href="#module-searx.engines.google_scholar" title="Link to this heading">¶</a></h2>
  273. <p>This is the implementation of the Google Scholar engine.</p>
  274. <p>Compared to other Google services the Scholar engine has a simple GET REST-API
  275. and there does not exists <cite>async</cite> API. Even though the API slightly vintage we
  276. can make use of the <a class="reference internal" href="#google-api"><span class="std std-ref">Google API</span></a> to assemble the arguments of the GET
  277. request.</p>
  278. <dl class="py data">
  279. <dt class="sig sig-object py" id="searx.engines.google_scholar.max_page">
  280. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">max_page</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">50</span></em><a class="headerlink" href="#searx.engines.google_scholar.max_page" title="Link to this definition">¶</a></dt>
  281. <dd><p><a class="reference external" href="https://github.com/searxng/searxng/issues/2982">Google max 50 pages</a></p>
  282. </dd></dl>
  283. <dl class="py function">
  284. <dt class="sig sig-object py" id="searx.engines.google_scholar.time_range_args">
  285. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">time_range_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_scholar.html#time_range_args"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_scholar.time_range_args" title="Link to this definition">¶</a></dt>
  286. <dd><p>Returns a dictionary with a time range arguments based on
  287. <code class="docutils literal notranslate"><span class="pre">params['time_range']</span></code>.</p>
  288. <p>Google Scholar supports a detailed search by year. Searching by <em>last
  289. month</em> or <em>last week</em> (as offered by SearXNG) is uncommon for scientific
  290. publications and is not supported by Google Scholar.</p>
  291. <p>To limit the result list when the users selects a range, all the SearXNG
  292. ranges (<em>day</em>, <em>week</em>, <em>month</em>, <em>year</em>) are mapped to <em>year</em>. If no range
  293. is set an empty dictionary of arguments is returned. Example; when
  294. user selects a time range (current year minus one in 2022):</p>
  295. <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="s1">&#39;as_ylo&#39;</span> <span class="p">:</span> <span class="mi">2021</span> <span class="p">}</span>
  296. </pre></div>
  297. </div>
  298. </dd></dl>
  299. <dl class="py function">
  300. <dt class="sig sig-object py" id="searx.engines.google_scholar.detect_google_captcha">
  301. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">detect_google_captcha</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dom</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_scholar.html#detect_google_captcha"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_scholar.detect_google_captcha" title="Link to this definition">¶</a></dt>
  302. <dd><p>In case of CAPTCHA Google Scholar open its own <em>not a Robot</em> dialog and is
  303. not redirected to <code class="docutils literal notranslate"><span class="pre">sorry.google.com</span></code>.</p>
  304. </dd></dl>
  305. <dl class="py function">
  306. <dt class="sig sig-object py" id="searx.engines.google_scholar.request">
  307. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_scholar.html#request"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_scholar.request" title="Link to this definition">¶</a></dt>
  308. <dd><p>Google-Scholar search request</p>
  309. </dd></dl>
  310. <dl class="py function">
  311. <dt class="sig sig-object py" id="searx.engines.google_scholar.parse_gs_a">
  312. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">parse_gs_a</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.13)"><span class="pre">None</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_scholar.html#parse_gs_a"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_scholar.parse_gs_a" title="Link to this definition">¶</a></dt>
  313. <dd><p>Parse the text written in green.</p>
  314. <p>Possible formats:
  315. * “{authors} - {journal}, {year} - {publisher}”
  316. * “{authors} - {year} - {publisher}”
  317. * “{authors} - {publisher}”</p>
  318. </dd></dl>
  319. <dl class="py function">
  320. <dt class="sig sig-object py" id="searx.engines.google_scholar.response">
  321. <span class="sig-prename descclassname"><span class="pre">searx.engines.google_scholar.</span></span><span class="sig-name descname"><span class="pre">response</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../../_modules/searx/engines/google_scholar.html#response"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#searx.engines.google_scholar.response" title="Link to this definition">¶</a></dt>
  322. <dd><p>Parse response from Google Scholar</p>
  323. </dd></dl>
  324. </section>
  325. </section>
  326. <div class="clearer"></div>
  327. </div>
  328. </div>
  329. </div>
  330. <span id="sidebar-top"></span>
  331. <div class="sphinxsidebar" role="navigation" aria-label="Main">
  332. <div class="sphinxsidebarwrapper">
  333. <p class="logo"><a href="../../../index.html">
  334. <img class="logo" src="../../../_static/searxng-wordmark.svg" alt="Logo of SearXNG"/>
  335. </a></p>
  336. <h3><a href="../../../index.html">Table of Contents</a></h3>
  337. <ul class="current">
  338. <li class="toctree-l1"><a class="reference internal" href="../../../user/index.html">User information</a></li>
  339. <li class="toctree-l1"><a class="reference internal" href="../../../own-instance.html">Why use a private instance?</a></li>
  340. <li class="toctree-l1"><a class="reference internal" href="../../../admin/index.html">Administrator documentation</a></li>
  341. <li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Developer documentation</a><ul class="current">
  342. <li class="toctree-l2"><a class="reference internal" href="../../quickstart.html">Development Quickstart</a></li>
  343. <li class="toctree-l2"><a class="reference internal" href="../../rtm_asdf.html">Runtime Management</a></li>
  344. <li class="toctree-l2"><a class="reference internal" href="../../contribution_guide.html">How to contribute</a></li>
  345. <li class="toctree-l2"><a class="reference internal" href="../../extended_types.html">Extended Types</a></li>
  346. <li class="toctree-l2 current"><a class="reference internal" href="../index.html">Engine Implementations</a><ul class="current">
  347. <li class="toctree-l3"><a class="reference internal" href="../enginelib.html">Engine Library</a></li>
  348. <li class="toctree-l3"><a class="reference internal" href="../engines.html">SearXNG’s engines loader</a></li>
  349. <li class="toctree-l3"><a class="reference internal" href="../engine_overview.html">Engine Overview</a></li>
  350. <li class="toctree-l3"><a class="reference internal" href="../index.html#resultlist-and-engines">ResultList and engines</a></li>
  351. <li class="toctree-l3 current"><a class="reference internal" href="../index.html#engine-types">Engine Types</a><ul class="current">
  352. <li class="toctree-l4 current"><a class="reference internal" href="../index.html#online-engines">Online Engines</a><ul class="current">
  353. <li class="toctree-l5"><a class="reference internal" href="../demo/demo_online.html">Demo Online Engine</a></li>
  354. <li class="toctree-l5"><a class="reference internal" href="../xpath.html">XPath Engine</a></li>
  355. <li class="toctree-l5"><a class="reference internal" href="../mediawiki.html">MediaWiki Engine</a></li>
  356. <li class="toctree-l5"><a class="reference internal" href="../json_engine.html">JSON Engine</a></li>
  357. <li class="toctree-l5"><a class="reference internal" href="adobe_stock.html">Adobe Stock</a></li>
  358. <li class="toctree-l5"><a class="reference internal" href="alpinelinux.html">Alpine Linux Packages</a></li>
  359. <li class="toctree-l5"><a class="reference internal" href="annas_archive.html">Anna’s Archive</a></li>
  360. <li class="toctree-l5"><a class="reference internal" href="archlinux.html">Arch Linux</a></li>
  361. <li class="toctree-l5"><a class="reference internal" href="bing.html">Bing Engines</a></li>
  362. <li class="toctree-l5"><a class="reference internal" href="bpb.html">Bpb</a></li>
  363. <li class="toctree-l5"><a class="reference internal" href="brave.html">Brave Engines</a></li>
  364. <li class="toctree-l5"><a class="reference internal" href="bt4g.html">BT4G</a></li>
  365. <li class="toctree-l5"><a class="reference internal" href="chinaso.html">ChinaSo</a></li>
  366. <li class="toctree-l5"><a class="reference internal" href="core.html">CORE</a></li>
  367. <li class="toctree-l5"><a class="reference internal" href="dailymotion.html">Dailymotion</a></li>
  368. <li class="toctree-l5"><a class="reference internal" href="discourse.html">Discourse Forums</a></li>
  369. <li class="toctree-l5"><a class="reference internal" href="duckduckgo.html">DuckDuckGo Engines</a></li>
  370. <li class="toctree-l5"><a class="reference internal" href="geizhals.html">Geizhals</a></li>
  371. <li class="toctree-l5"><a class="reference internal" href="gitea.html">Gitea</a></li>
  372. <li class="toctree-l5"><a class="reference internal" href="gitlab.html">GitLab</a></li>
  373. <li class="toctree-l5 current"><a class="current reference internal" href="#">Google Engines</a></li>
  374. <li class="toctree-l5"><a class="reference internal" href="huggingface.html">Hugging Face</a></li>
  375. <li class="toctree-l5"><a class="reference internal" href="lemmy.html">Lemmy</a></li>
  376. <li class="toctree-l5"><a class="reference internal" href="loc.html">Library of Congress</a></li>
  377. <li class="toctree-l5"><a class="reference internal" href="mastodon.html">Mastodon</a></li>
  378. <li class="toctree-l5"><a class="reference internal" href="moviepilot.html">Moviepilot</a></li>
  379. <li class="toctree-l5"><a class="reference internal" href="mrs.html">Matrix Rooms Search (MRS)</a></li>
  380. <li class="toctree-l5"><a class="reference internal" href="mullvad_leta.html">Mullvad-Leta</a></li>
  381. <li class="toctree-l5"><a class="reference internal" href="mwmbl.html">Mwmbl Engine</a></li>
  382. <li class="toctree-l5"><a class="reference internal" href="odysee.html">Odysee</a></li>
  383. <li class="toctree-l5"><a class="reference internal" href="peertube.html">Peertube Engines</a></li>
  384. <li class="toctree-l5"><a class="reference internal" href="piped.html">Piped</a></li>
  385. <li class="toctree-l5"><a class="reference internal" href="presearch.html">Presearch Engine</a></li>
  386. <li class="toctree-l5"><a class="reference internal" href="qwant.html">Qwant</a></li>
  387. <li class="toctree-l5"><a class="reference internal" href="radio_browser.html">RadioBrowser</a></li>
  388. <li class="toctree-l5"><a class="reference internal" href="recoll.html">Recoll Engine</a></li>
  389. <li class="toctree-l5"><a class="reference internal" href="reuters.html">Reuters</a></li>
  390. <li class="toctree-l5"><a class="reference internal" href="seekr.html">Seekr Engines</a></li>
  391. <li class="toctree-l5"><a class="reference internal" href="soundcloud.html">Soundcloud</a></li>
  392. <li class="toctree-l5"><a class="reference internal" href="startpage.html">Startpage Engines</a></li>
  393. <li class="toctree-l5"><a class="reference internal" href="tagesschau.html">Tagesschau API</a></li>
  394. <li class="toctree-l5"><a class="reference internal" href="torznab.html">Torznab WebAPI</a></li>
  395. <li class="toctree-l5"><a class="reference internal" href="void.html">Void Linux binary packages</a></li>
  396. <li class="toctree-l5"><a class="reference internal" href="wallhaven.html">Wallhaven</a></li>
  397. <li class="toctree-l5"><a class="reference internal" href="wikipedia.html">Wikimedia</a></li>
  398. <li class="toctree-l5"><a class="reference internal" href="yacy.html">Yacy</a></li>
  399. <li class="toctree-l5"><a class="reference internal" href="yahoo.html">Yahoo Engine</a></li>
  400. <li class="toctree-l5"><a class="reference internal" href="zlibrary.html">Z-Library</a></li>
  401. </ul>
  402. </li>
  403. <li class="toctree-l4"><a class="reference internal" href="../index.html#offline-engines">Offline Engines</a></li>
  404. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-url-search">Online URL Search</a></li>
  405. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-currency">Online Currency</a></li>
  406. <li class="toctree-l4"><a class="reference internal" href="../index.html#online-dictionary">Online Dictionary</a></li>
  407. </ul>
  408. </li>
  409. </ul>
  410. </li>
  411. <li class="toctree-l2"><a class="reference internal" href="../../result_types/index.html">Result Types</a></li>
  412. <li class="toctree-l2"><a class="reference internal" href="../../templates.html">Simple Theme Templates</a></li>
  413. <li class="toctree-l2"><a class="reference internal" href="../../search_api.html">Search API</a></li>
  414. <li class="toctree-l2"><a class="reference internal" href="../../plugins/index.html">Plugins</a></li>
  415. <li class="toctree-l2"><a class="reference internal" href="../../answerers/index.html">Answerers</a></li>
  416. <li class="toctree-l2"><a class="reference internal" href="../../translation.html">Translation</a></li>
  417. <li class="toctree-l2"><a class="reference internal" href="../../lxcdev.html">Developing in Linux Containers</a></li>
  418. <li class="toctree-l2"><a class="reference internal" href="../../makefile.html">Makefile &amp; <code class="docutils literal notranslate"><span class="pre">./manage</span></code></a></li>
  419. <li class="toctree-l2"><a class="reference internal" href="../../reST.html">reST primer</a></li>
  420. <li class="toctree-l2"><a class="reference internal" href="../../searxng_extra/index.html">Tooling box <code class="docutils literal notranslate"><span class="pre">searxng_extra</span></code></a></li>
  421. </ul>
  422. </li>
  423. <li class="toctree-l1"><a class="reference internal" href="../../../utils/index.html">DevOps tooling box</a></li>
  424. <li class="toctree-l1"><a class="reference internal" href="../../../src/index.html">Source-Code</a></li>
  425. </ul>
  426. <h3>Project Links</h3>
  427. <ul>
  428. <li><a href="https://github.com/searxng/searxng/tree/master">Source</a>
  429. <li><a href="https://github.com/searxng/searxng/wiki">Wiki</a>
  430. <li><a href="https://searx.space">Public instances</a>
  431. <li><a href="https://github.com/searxng/searxng/issues">Issue Tracker</a>
  432. </ul><h3>Navigation</h3>
  433. <ul>
  434. <li><a href="../../../index.html">Overview</a>
  435. <ul>
  436. <li><a href="../../index.html">Developer documentation</a>
  437. <ul>
  438. <li><a href="../index.html">Engine Implementations</a>
  439. <ul>
  440. <li>Previous: <a href="gitlab.html" title="previous chapter">GitLab</a>
  441. <li>Next: <a href="huggingface.html" title="next chapter">Hugging Face</a></ul>
  442. </li></ul>
  443. </li>
  444. </ul>
  445. </li>
  446. </ul>
  447. <search id="searchbox" style="display: none" role="search">
  448. <h3 id="searchlabel">Quick search</h3>
  449. <div class="searchformwrapper">
  450. <form class="search" action="../../../search.html" method="get">
  451. <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
  452. <input type="submit" value="Go" />
  453. </form>
  454. </div>
  455. </search>
  456. <script>document.getElementById('searchbox').style.display = "block"</script>
  457. <div role="note" aria-label="source link">
  458. <h3>This Page</h3>
  459. <ul class="this-page-menu">
  460. <li><a href="../../../_sources/dev/engines/online/google.rst.txt"
  461. rel="nofollow">Show Source</a></li>
  462. </ul>
  463. </div>
  464. </div>
  465. </div>
  466. <div class="clearer"></div>
  467. </div>
  468. <div class="footer" role="contentinfo">
  469. &#169; Copyright SearXNG team.
  470. </div>
  471. </body>
  472. </html>