美文网首页
Python写的Google Indexing API,批量实时

Python写的Google Indexing API,批量实时

作者: b4297d1af72d | 来源:发表于2022-02-18 09:41 被阅读0次

    什么是索引 API?

    索引 API 是一种应用程序编程接口,允许网站所有者在添加或删除页面时通知 Google。这允许谷歌立即索引任何网页。它主要用于短期内容,例如职位发布和新闻文章。

    使用索引 API 时,Google 会将这些 URL 优先于其他 URL 进行抓取和索引。

    订阅我的时事通讯

    使用索引 API,您可以:

    更新索引中的 URL

    从索引中删除 URL

    获取最新请求的状态

    发送批量请求以减少 API 调用次数。

    要求

    对于本教程,您将需要一些东西:

    安装了Python

    Google Search Console 的完整或所有者权限级别

    检查您是否具有运行 API 的访问级别

    转到Google Indexing API 游乐场

    添加此请求正文。

    {

      "url": "https://example.com",

      "type": "URL_UPDATED"

    }

    如果状态码是200,那么您拥有继续操作所需的一切。

    创建您的 API 项目

    转到Google 开发者控制台并创建一个新项目。

    给它一个名字,然后单击“创建”。

    创建服务帐号

    服务帐户将充当与索引 API 交互的电子邮件。

    确保您在刚刚创建的项目中。

    创建 API 凭证

    点击“管理服务帐户”。

    单击“创建服务帐户”。

    然后,使用所需信息创建服务帐户。

    选择“所有者”角色。

    您可以跳过下一步并创建服务帐户。

    创建 API 密钥

    首先,存储以“gserviceaccount.com”结尾的电子邮件以备后用。对于新创建的服务帐户,您需要创建 API 密钥作为应用程序的用户名和密码。

    单击“添加密钥”>“创建新密钥”。

    为您的私钥选择 JSON,然后单击“创建”。

    将文件保存在安全的地方。

    启用索引 API

    现在,需要在您的项目中启用 API 才能使用它。

    转到索引 API 库并在您的项目中启用它。

    确保您在“indexing-api”项目中,然后单击“ENABLE”。

    为服务帐户提供所有者状态

    要使索引 API 正常工作,您需要在网站管理员中心为您的服务帐户电子邮件提供所有权。

    转到网站管理员中心

    添加要在其上使用索引 API 的属性,或从列表中选择。

    转到“已验证的所有者”,然后单击“添加所有者”。

    并添加服务帐户。这是您创建的以“gserviceaccount.com”结尾的电子邮件。您可以在凭据选项卡中找到它。

    在 Python 中运行索引 API

    要使用 Python 发布到索引 API,我们将使用oauth2client、httplib2和json库。要安装它们pip:

    $ pip install oauth2client httplib2

    然后,这是用于提取的 Python 代码。

    fromoauth2client.service_account importServiceAccountCredentials

    importhttplib2

    importjson

    url ='https://www.example.com/'

    JSON_KEY_FILE ="credentials.json"

    SCOPES =[ "https://www.googleapis.com/auth/indexing"]

    ENDPOINT ="https://indexing.googleapis.com/v3/urlNotifications:publish"

    # Authorize credentials

    credentials =ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

    http =credentials.authorize(httplib2.Http())

    # Build the request body

    print(url)

    content ={}

    content['url'] =url

    content['type'] ="URL_UPDATED"

    json_content =json.dumps(content)

    response, content =http.request(ENDPOINT, method="POST", body=json_content)

    result =json.loads(content.decode())

    使用 Python 向索引 API 发送批量请求

    现在,您可以在单个请求中向多达 1000 个 URL 发送批量请求。

    fromoauth2client.service_account importServiceAccountCredentials

    fromgoogleapiclient.discovery importbuild

    fromgoogleapiclient.http importBatchHttpRequest

    importhttplib2

    importjson

    requests ={

        'https://www.jcchouinard.com/':'URL_UPDATED',

        'https://www.jcchouinard.com/about/':'URL_UPDATED'

    }

    JSON_KEY_FILE ="credentials.json"

    SCOPES =[ "https://www.googleapis.com/auth/indexing"]

    ENDPOINT ="https://indexing.googleapis.com/v3/urlNotifications:publish"

    # Authorize credentials

    credentials =ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

    http =credentials.authorize(httplib2.Http())

    # Build service

    service =build('indexing', 'v3', credentials=credentials)

    definsert_event(request_id, response, exception):

        ifexception isnotNone:

          print(exception)

        else:

          print(response)

    batch =service.new_batch_http_request(callback=insert_event)

    forurl, api_type inrequests.items():

        batch.add(service.urlNotifications().publish(

            body={"url": url, "type": api_type}))

    batch.execute()

    索引 API 端点

    使用 Google 的索引 API,您可以做 2 件事:

    发布特定 URL 的更新

    获取有关 URL 的最新更改的信息

    执行批处理请求

    发布端点

    要发布更新,请创建POST对此 API 端点的请求:

    https://indexing.googleapis.com/v3/urlNotifications:publish

    在请求正文中,您可以定义两个参数:

    URL_UPDATED: 更新索引中的 URL

    URL_DELETED:从索引中删除 URL

    元数据端点

    要获取有关最新HTTP 请求的信息,请创建GET对此 API 端点的请求:

    https://indexing.googleapis.com/v3/urlNotifications/metadata

    批量请求端点

    要将批处理请求发送到索引 API,POST请向此 API 端点发出请求:

    https://indexing.googleapis.com/batch

    索引 API 配额

    Google 的 Indexing API 对可能的请求数量施加了配额。每天的默认请求数为 200。如果您需要增加配额,则需要向 Google 提交请求

    话虽如此,索引 API 允许批量请求。这允许以 1000 个 URL 为一组的请求,加起来每天可以更新 20 万个 URL。

    索引 API 错误

    状态码403。状态:PERMISSION_DENIED。多种原因:访问级别不足,ceveloper 控制台中未启用索引 API

    状态码429。状态:RESOURCE_EXHAUSTED。速率限制,因为您的配额已超出。

    状态码403。状态:PERMISSION_DENIED。多种原因:访问级别不足,ceveloper 控制台中未启用索引 API

    状态码400。状态:INVALID_ARGUMENT。请求的正文有问题。检查它是否遵循正确的格式。

    请参阅其他索引 API 错误

    相关文章

      网友评论

          本文标题:Python写的Google Indexing API,批量实时

          本文链接:https://www.haomeiwen.com/subject/epgelrtx.html