Google 索引 API - 无效属性。 'url' 不是标准的 URL 格式 - 但我的 URL 是正确的
Google Indexing API - Invalid attribute. 'url' is not in standard URL format - But my URL is Correct
我目前正在使用索引 API v3.
当我在循环中使用这个 API 时,我得到了这个错误:
无效的属性。 'url' 不是标准 URL 格式
但我很确定我的 URL 是正确的,因为它是从 Google 搜索控制台下载的:
代码如下:
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import json
import pandas as pd
JSON_KEY_FILE = "key.json"
SCOPES = ["https://www.googleapis.com/auth/indexing"]
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())
# This file contains 2 column, URL and date
csv = pd.read_csv("my_data.csv")
csv[["URL"]][0:10].apply(lambda x: indexURL(x.to_string(), http), axis=1)
def indexURL(url, http):
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"
content = {}
content['url'] = url
content['type'] = "URL_UPDATED"
json_ctn = json.dumps(content)
response, content = http.request(ENDPOINT, method="POST", body=json_ctn)
result = json.loads(content.decode())
if("error" in result):
print("Error({} - {}): {}".format(result["error"]["code"], result["error"]["status"], result["error"]["message"]))
else:
print("urlNotificationMetadata.url: {}".format(result["urlNotificationMetadata"]["url"]))
print("urlNotificationMetadata.latestUpdate.url: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["url"]))
print("urlNotificationMetadata.latestUpdate.type: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["type"]))
print("urlNotificationMetadata.latestUpdate.notifyTime: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["notifyTime"]))
这里是 URL 样本列表:
任何人都可以告诉我我的代码有什么问题吗?
非常感谢您的帮助。
似乎即使我对每一行应用.strip()
,每个URL的末尾仍然有一个\n
。
所以我没有将一行一行地放入 lambda,而是将整个系列放入 lambda 并使用 for-loop 来处理它。
整个工作示例在这里:
我目前正在使用索引 API v3.
当我在循环中使用这个 API 时,我得到了这个错误:
无效的属性。 'url' 不是标准 URL 格式
但我很确定我的 URL 是正确的,因为它是从 Google 搜索控制台下载的:
代码如下:
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import json
import pandas as pd
JSON_KEY_FILE = "key.json"
SCOPES = ["https://www.googleapis.com/auth/indexing"]
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())
# This file contains 2 column, URL and date
csv = pd.read_csv("my_data.csv")
csv[["URL"]][0:10].apply(lambda x: indexURL(x.to_string(), http), axis=1)
def indexURL(url, http):
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"
content = {}
content['url'] = url
content['type'] = "URL_UPDATED"
json_ctn = json.dumps(content)
response, content = http.request(ENDPOINT, method="POST", body=json_ctn)
result = json.loads(content.decode())
if("error" in result):
print("Error({} - {}): {}".format(result["error"]["code"], result["error"]["status"], result["error"]["message"]))
else:
print("urlNotificationMetadata.url: {}".format(result["urlNotificationMetadata"]["url"]))
print("urlNotificationMetadata.latestUpdate.url: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["url"]))
print("urlNotificationMetadata.latestUpdate.type: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["type"]))
print("urlNotificationMetadata.latestUpdate.notifyTime: {}".format(result["urlNotificationMetadata"]["latestUpdate"]["notifyTime"]))
这里是 URL 样本列表:
任何人都可以告诉我我的代码有什么问题吗?
非常感谢您的帮助。
似乎即使我对每一行应用.strip()
,每个URL的末尾仍然有一个\n
。
所以我没有将一行一行地放入 lambda,而是将整个系列放入 lambda 并使用 for-loop 来处理它。
整个工作示例在这里: