> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/api-targets/cn/sou-suo-yin-qing/google.md).

# Google

使用网页爬虫API，你可以抓取并解析各种类型的 **Google** 页面；以下是所有受支持的爬虫及其对应 `源` 值。

<table><thead><tr><th width="222">来源</th><th width="316">说明</th><th width="226">专用解析器</th></tr></thead><tbody><tr><td><code>google_search</code></td><td>SERPs (<a href="/pages/2ae6768d07f4f24437e547f9aebcb314d6a06f0c"><strong>网页</strong></a>, <a href="/pages/8d39cce62ffe3f635c5175d6e6408fb68d7ad556"><strong>图片</strong></a>, <a href="/pages/bca456e98d1e5e108e652b004cdd3cda14423ab2"><strong>新闻</strong></a><strong>,</strong> <a href="/pages/02ea6d72e1cdc5be5b4cd6208afda852fb8dfcf5"><strong>AI Overviews</strong></a>).</td><td>✓</td></tr><tr><td><code>google_ads</code></td><td>SERPs，针对 <a href="/pages/95e571fd6e2dd19bec3eabcc504cf6fbac0659c2"><strong>最高广告率</strong></a>.</td><td>✓</td></tr><tr><td><code>google_ai_mode</code></td><td><a href="/pages/24cf156319973fd79c666b380e540e5e8b84b100"><strong>Google AI Mode</strong></a>  对话式回复。</td><td>✓</td></tr><tr><td><code>google_lens</code></td><td><a href="/pages/1231a0f8e5fca55fd8ef65d211c6da2bbde77783"><strong>Google Lens</strong></a> 服务。</td><td>✓</td></tr><tr><td><code>google_maps</code></td><td><a href="/pages/fa07ba746f8da9fd2e4b9a32a31e72b75e27b76e"><strong>本地搜索</strong></a> 服务。</td><td>–</td></tr><tr><td><code>google_scholar</code></td><td><a href="/pages/4a9c051ff74e0454013223c54980284e1dc237bb"><strong>Google Scholar</strong></a> 服务。</td><td>✓</td></tr><tr><td><code>google_shopping_search</code></td><td><a href="/pages/30d7939fc93399a0d2145330a434d63293c2a611"><strong>搜索</strong></a> 你选择的搜索词的结果。</td><td>✓</td></tr><tr><td><code>google_shopping_product</code></td><td><a href="/pages/d099ca0378a18968be0c68a7e5384b7a83e21bc6"><strong>商品</strong></a> 你选择的某个产品 token 的页面。</td><td>✓</td></tr><tr><td><code>google_trends_explore</code></td><td><a href="/pages/9cc55515895d499b7ca89b45cc9673de720bafda"><strong>趋势</strong></a>.</td><td>–</td></tr><tr><td><code>google_travel_hotels</code></td><td><a href="/pages/68f2e801b766256be80eca7af6c0660260e85540"><strong>旅行：酒店</strong></a> 服务。</td><td>–</td></tr><tr><td><code>google</code></td><td>提交任意 Google <a href="/pages/8699117476ab4e20a45acd47104c3a4416a818f9"><strong>URL</strong></a> 都可以。</td><td>仅特定的 <a href="/pages/55be38a1fe24f7b9e3a53af4997ef9dffa756d02"><strong>Google 页面类型</strong></a>.</td></tr></tbody></table>

{% hint style="info" %}
虽然我们没有针对每个 Google 来源的专用解析器，但你可以使用 [**自定义解析器**](/products/cn/web-scraper-api/features/custom-parser.md) 功能编写自己的解析指令，并获取结构化数据。
{% endhint %}

## 开始使用

**创建你的 API 用户凭据**：注册免费试用，或在 [**Oxylabs 仪表板**](https://dashboard.oxylabs.io/en/registration) 中创建你的 API 用户凭据（`USERNAME` 和 `PASSWORD`).

{% hint style="warning" %}
如果你的账户需要多个 API 用户，请联系我们的 [**客服支持**](mailto:support@oxylabs.io) 或通过 24/7 在线聊天支持联系我们。
{% endhint %}

### 请求示例

{% tabs %}
{% tab title="cURL" %}

```shell
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
        "source": "google_search",
        "query": "adidas",
        "geo_location": "California,United States",
        "parse": true
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint

# Structure payload.
payload = {
    'source': 'google_search',
    'query': 'adidas',
    'geo_location': 'California,United States',
    'parse': True
}

# Get response.
response = requests.request(
    'POST',
    'https://realtime.oxylabs.io/v1/queries',
    auth=('USERNAME', 'PASSWORD'),
    json=payload,
)

# Print prettified response to stdout.
pprint(response.json())
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const https = require("https");

const username = "USERNAME";
const password = "PASSWORD";
const body = {
    source: "google_search",
    query: "adidas",
    geo_location: "California,United States",
    parse: true,
};

const options = {
    hostname: "realtime.oxylabs.io",
    path: "/v1/queries",
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        Authorization:
            "Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
    },
};

const request = https.request(options, (response) => {
    let data = "";

    response.on("data", (chunk) => {
        data += chunk;
    });

    response.on("end", () => {
        const responseData = JSON.parse(data);
        console.log(JSON.stringify(responseData, null, 2));
    });
});

request.on("error", (error) => {
    console.error("Error:", error);
});

request.write(JSON.stringify(body));
request.end();
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = array(
    'source' => 'google_search',
    'query' => 'adidas',
    'geo_location' => 'California,United States',
    'parse' => true
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");

$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;

namespace OxyApi
{
    class Program
    {
        static async Task Main()
        {
            const string Username = "USERNAME";
            const string Password = "PASSWORD";

            var parameters = new {
                source = "google_search",
                query = "adidas",
                geo_location = "California,United States",
                parse = true
            };

            var client = new HttpClient();

            Uri baseUri = new Uri("https://realtime.oxylabs.io");
            client.BaseAddress = baseUri;

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
            requestMessage.Content = JsonContent.Create(parameters);

            var authenticationString = $"{Username}:{Password}";
            var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(authenticationString));
            requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);

            var response = await client.SendAsync(requestMessage);
            var contents = await response.Content.ReadAsStringAsync();

            Console.WriteLine(contents);
        }
    }
}
```

{% endtab %}

{% tab title="Golang" %}

```go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	const Username = "USERNAME"
	const Password = "PASSWORD"

	payload := map[string]interface{}{
		"source":       "google_search",
		"query":        "adidas",
		"geo_location": "California,United States",
		"parse":        true,
	}

	jsonValue, _ := json.Marshal(payload)

	client := &http.Client{}
	request, _ := http.NewRequest("POST",
		"https://realtime.oxylabs.io/v1/queries",
		bytes.NewBuffer(jsonValue),
	)

	request.SetBasicAuth(Username, Password)
	request.Header.Set("Content-Type", "application/json")
	response, _ := client.Do(request)

	responseText, _ := ioutil.ReadAll(response.Body)
	fmt.Println(string(responseText))
}
```

{% endtab %}

{% tab title="HTTP" %}

```http
https://realtime.oxylabs.io/v1/queries?source=google_search&query=adidas&geo_location=California%2CUnited%20States&parse=true&access_token=12345abcde
```

{% endtab %}

{% tab title="Java" %}

```java
package org.example;

import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;

public class Main implements Runnable {
    private static final String AUTHORIZATION_HEADER = "Authorization";
    public static final String USERNAME = "USERNAME";
    public static final String PASSWORD = "PASSWORD";

    public void run() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("source", "google_search");
        jsonObject.put("query", "adidas");
        jsonObject.put("geo_location", "California,United States");
        jsonObject.put("parse", true);

        Authenticator authenticator = (route, response) -> {
            String credential = Credentials.basic(USERNAME, PASSWORD);
            return response
                    .request()
                    .newBuilder()
                    .header(AUTHORIZATION_HEADER, credential)
                    .build();
        };

        var client = new OkHttpClient.Builder()
                .authenticator(authenticator)
                .readTimeout(180, TimeUnit.SECONDS)
                .build();

        var mediaType = MediaType.parse("application/json; charset=utf-8");
        var body = RequestBody.create(jsonObject.toString(), mediaType);
        var request = new Request.Builder()
                .url("https://realtime.oxylabs.io/v1/queries")
                .post(body)
                .build();

        try (var response = client.newCall(request).execute()) {
            if (response.body() != null) {
                try (var responseBody = response.body()) {
                    System.out.println(responseBody.string());
                }
            }
        } catch (Exception exception) {
            System.out.println("Error: " + exception.getMessage());
        }

        System.exit(0);
    }

    public static void main(String[] args) {
        new Thread(new Main()).start();
    }
}
```

{% endtab %}

{% tab title="JSON" %}

```json
{
    "source": "google_search",
    "query": "adidas",
    "geo_location": "California,United States",
    "parse": true
}
```

{% endtab %}
{% endtabs %}

<details>

<summary><code>google_search</code> 结构化输出</summary>

```json
{
    "results": [
        {
            "content": {
                "url": "https://www.google.com/search?q=adidas&uule=w+CAIQICINdW5pdGVkIHN0YXRlcw&gl=us&hl=en",
                "page": 1,
                "results": {
                    "pla": {
                        "items": [
                            {
                                "pos": 1,
                                "url": "https://www.adidas.com/us/nmd_r1-primeblue-shoes/GZ9257.html?dfw_tracker=24819-GZ9257-0010",
                                "price": "$150.00",
                                "title": "NMD_R1 Primeblue Shoes Black M 8.5 / W 9.5 - Mens Originals Shoes",
                                "seller": "adidas",
                                "url_image": "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcSZALnENHKXERktsOCnUSscRd4v0cSUw9E0XPaZwgyruM0Wuw-MhWcchAVzZRBdS-OP3_167R3jCg&usqp=CAc",
                                "image_data": "iVBORw0KGgoAAAANSUhEU...JRU5ErkJggg=="
                            },
                            {
                                "pos": 22,
                                "url": "https://www.adidas.com/us/ultraboost-5.0-dna-shoes/GY6452.html?dfw_tracker=24819-GY6452-0006",
                                "price": "$90.00",
                                "title": "Ultraboost 5.0 DNA Shoes Magic Grey 13K - Kids Originals Shoes",
                                "seller": "adidas",
                                "url_image": "https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcSTCgTZ1im_6ZX9YSCrjQfjVEnTmpmiqqYAHAhXzA9VhJdrokOeOnWsbEOxqA8zPkaos192xPF5ogA&usqp=CAc",
                                "image_data": "iVBORw0KGgoAAAANSUhEU...kJggg=="
                            }
                        ],
                        "pos_overall": 1
                    },
                    "paid": [],
                    "images": {
                        "items": [
                            {
                                "alt": "Image result for adidas",
                                "pos": 1,
                                "url": "/search?q=adidas&gl=us&h...E#imgrc=Dw-CBW17i8BqsM",
                                "source": "https://www.britannica.com/topic/Adidas-AG"
                            },
                            {
                                "alt": "Image result for adidas",
                                "pos": 10,
                                "url": "/search?q=adidas&gl=us&hl=en&tbm=isch&sourXRM%252Cvz-MIh...QF6BAhLEAE#imgrc=_oOH_rR4W_-X-M",
                                "source": "https://www.shutterstock.com/search/adidas"
                            }
                        ],
                        "pos_overall": 11
                    },
                    "organic": [
                        {
                            "pos": 1,
                            "url": "https://www.adidas.com/us",
                            "desc": "adidas is about more than sportswear and workout clothes. We partner with the best in the industry to co-create. This way we offer our fans the sporting goods, ...",
                            "title": "adidas Official Website | adidas US",
                            "sitelinks": {
                                "expanded": [
                                    {
                                        "url": "https://www.adidas.com/us/women",
                                        "title": "Women"
                                    },
                                    {
                                        "url": "https://www.adidas.com/us/sale",
                                        "title": "Sale"
                                    }
                                ]
                            },
                            "url_shown": "https://www.adidas.com› ...",
                            "pos_overall": 2
                        },
                        {
                            "pos": 5,
                            "url": "https://play.google.com/store/apps/details?id=com.adidas.app&hl=en_US&gl=US",
                            "desc": "YOUR ADIDAS - MORE THAN A SHOPPING APP The home of sport and sneakers, the adidas app puts you closer to the action with access to sneaker drops, ...Size: 115MUpdated: May 3, 2022 Rating: 4.8 · ‎322,391 votes · ‎Free · ‎Android · ‎Sports",
                            "title": "adidas - Apps on Google Play",
                            "url_shown": "https://play.google.com› store › apps › details › id=com....",
                            "pos_overall": 12
                        }
                    ],
                    "twitter": {
                        "pos": 1,
                        "url": "https://twitter.com/adidas",
                        "items": [
                            {
                                "pos": 1,
                                "url": "https://twitter.com/adidas/status/1521901157064531968?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet",
                                "content": "What do you like to listen to most during workouts?",
                                "timeframe": "5 days ago"
                            },
                            {
                                "pos": 3,
                                "url": "https://twitter.com/adidas/status/1519345069366652928?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet",
                                "content": "How would you describe your favorite sport to an alien?",
                                "timeframe": "Apr 27, 2022"
                            }
                        ],
                        "title": "",
                        "pos_overall": 7
                    },
                    "knowledge": {
                        "title": "Adidas",
                        "factoids": [
                            {
                                "title": "Customer service chat",
                                "content": "Online Chat"
                            },
                            {
                                "title": "Website",
                                "content": "http://www.adidas-group.com/"
                            }
                        ],
                        "profiles": [
                            {
                                "url": "https://www.instagram.com/adidas",
                                "title": "Instagram"
                            },
                            {
                                "url": "https://www.youtube.com/user/adidas",
                                "title": "YouTube"
                            }
                        ],
                        "subtitle": "设计公司",
                        "description": "阿迪达斯 AG 是一家德国跨国公司，成立于巴伐利亚州黑措根奥拉赫，总部也位于该地，设计并制造鞋类、服装和配饰。它是欧洲最大的运动服装制造商，也是全球第二大，仅次于耐克。",
                        "related_searches": [
                            {
                                "url": "/search?gl=us&hl=en&q=Nike&si=AC1wQDCwN61-ebmuwbQCO5QCrgOvEq5bkWeIzJ5JczItzAKNdbIxoHfFJ8UFY3e1CorwNJXI6gTWniM6aVu3nEoseblyAI-5N39_1F3DTWWABELjIdJa9ZgI_g5n-c9ZUZdzEZeV2VGOkDNPl5DwiBeyifKPveoCnBsiT3wVpKdr52FPqK5rzQSzspA-sjztjVcZy2WfOwFITo5EfSXyZ5AsknO1X-dzXUCOlIIGCvFWqi9OKgK5PaWp7EcXls7n8Ag_L7HC3Pgg2k5FWR631X7Hvi1268shAg%3D%3D&sa=X&ved=2ahUKEwiLlsjE8dH3AhUQkGoFHT2IBUQQxA16BAhdEAU",
                                "title": "耐克"
                            },
                            {
                                "url": "/search?gl=us&hl=en&q=Asics&si=AC1wQDDagiMg03ncxeOQZbwVe-CJxRCchC-jr2hCPTxjc9wbgNZ1pCnWqLo_0N5RPhArBCY1qCgzESLe6Y9hB2HKnzquQNjJW9iLV6gQvDXzTwkl6LZHjq2aOuZII0W5uCWjpc0oOVU5JzyOjRUNEYoe_N_KsbL4xn4A0Fl2S4JMYAeaBZmu8jPX8EFVl_C3gerS4CRTyrfcL2bL-VhUNLEXVUlkFxrLlAyeZfUMVYSDo4WqV1c8-Bgp-rBwBzqW73Q7s1kOZHBtCQ8aBNfbfulPCljSG9vXBrcj9RqQRA8pD8TlH1rz8qE%3D&sa=X&ved=2ahUKEwiLlsjE8dH3AhUQkGoFHT2IBUQQxA16BAhdEAs",
                                "title": "亚瑟士"
                            }
                        ]
                    },
                    "top_stories": {
                        "items": [
                            {
                                "pos": 1,
                                "url": "https://www.adidas.com/us/adilette-comfort-slides/GZ5898.html",
                                "title": "阿迪达斯 Adilette Comfort 拖鞋 - 米色 | 女士泳装 | adidas US",
                                "source": "",
                                "timeframe": "8小时前"
                            },
                            {
                                "pos": 3,
                                "url": "https://www.adidas.com/us/women-clothing-sale",
                                "title": "女士服装特卖，最高五折 | adidas US",
                                "source": "",
                                "timeframe": "2021年9月30日"
                            }
                        ],
                        "pos_overall": 3
                    },
                    "instant_answers": [
                        {
                            "type": "unknown",
                            "_parsed": false,
                            "pos_overall": 5
                        }
                    ],
                    "popular_products": {
                        "items": [
                            {
                                "pos": 1,
                                "title": "阿迪达斯 Yeezy 儿童 Foam Runner",
                                "image_data": "UklGRhwJAABXRUJQVlA...rAZNVIAAA"
                            },
                            {
                                "pos": 10,
                                "title": "阿迪达斯男士 Kaptir 2.0",
                                "image_data": "UklGRhQNAAB...+wTh1cLB/uQAAAAAAAAA="
                            }
                        ],
                        "pos_overall": 4
                    },
                    "related_searches": {
                        "pos_overall": 14,
                        "related_searches": [
                            "阿迪达斯鞋",
                            "阿迪达斯 Yeezy",
                            "阿迪达斯奥特莱斯",
                            "阿迪达斯裤子",
                            "阿迪达斯运动鞋",
                            "阿迪达斯 Superstar",
                            "阿迪达斯维基百科"
                        ]
                    },
                    "search_information": {
                        "query": "adidas",
                        "showing_results_for": "阿迪达斯",
                        "total_results_count": 1440000000
                    },
                    "total_results_count": 1440000000,
                },
                "last_visible_page": 10,
                "parse_status_code": 12000
            },
            "created_at": "2022-05-09 07:24:16",
            "updated_at": "2022-05-09 07:24:20",
            "page": 1,
            "url": "https://www.google.com/search?q=adidas&uule=w+CAIQICINdW5pdGVkIHN0YXRlcw&gl=us&hl=en",
            "job_id": "6929330182268395521",
            "status_code": 200,
            "parser_type": "v2"
        }
    ]
}
```

</details>

我们在示例中使用同步 [**Realtime**](/products/cn/web-scraper-api/integration-methods/realtime.md) 集成方法。如果你想使用 [**Proxy Endpoint**](/products/cn/web-scraper-api/integration-methods/proxy-endpoint.md) 或异步 [**Push-Pull**](/products/cn/web-scraper-api/integration-methods/push-pull.md) 集成，请参阅 [**集成方法**](/products/cn/web-scraper-api/integration-methods.md) 部分。

可选地，你可以包含其他参数，例如 `geo_location`, `user_agent_type`, `parse`, `render` 以及更多内容来自定义你的抓取请求。了解更多：

{% content-ref url="/spaces/ZwEHB9k4MH4pDy80n9mF/pages/1c0708575f299a0b7d4cba7684877a9277872b1e" %}
[功能](/products/cn/web-scraper-api/features.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/api-targets/cn/sou-suo-yin-qing/google.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
