gpt4 book ai didi

python - 在 python 中批量请求到 Google Search Console API

转载 作者:太空狗 更新时间:2023-10-30 01:37:03 25 4
gpt4 key购买 nike

在过去的两天里,我一直在尝试使用 Python 向 Google Search Console API 发送批量请求,但我不确定文档以及如何继续。

我不确定要遵循哪些文档。

https://developers.google.com/api-client-library/python/guide/batch

https://developers.google.com/webmaster-tools/v3/how-tos/batch

第一个文件说要使用这种格式:

from apiclient.http import BatchHttpRequest

def insert_animal(request_id, response, exception):
if exception is not None:
# Do something with the exception
pass
else:
# Do something with the response
pass

service = build('farm', 'v2')

batch = service.new_batch_http_request(callback=insert_animal)

batch.add(service.animals().insert(name="sheep"))
batch.add(service.animals().insert(name="pig"))
batch.add(service.animals().insert(name="llama"))
batch.execute(http=http)

但是第二篇文章说要这样做:

POST /batch HTTP/1.1
Authorization: Bearer your_auth_token
Host: www.googleapis.com
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item1:12930812@barnyard.example.com>

GET /farm/v1/animals/pony

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item2:12930812@barnyard.example.com>

PUT /farm/v1/animals/sheep
Content-Type: application/json
Content-Length: part_content_length
If-Match: "etag/sheep"

{
"animalName": "sheep",
"animalAge": "5"
"peltColor": "green",
}

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item3:12930812@barnyard.example.com>

GET /farm/v1/animals
If-None-Match: "etag/animals"

--batch_foobarbaz--

但我不确定最后一个人要我用这段代码做什么?

另外,在Request包中发起Post请求时,body参数应该在哪里输入?

谢谢。

最佳答案

这是一种用于发出 GET 请求的技术,POST 请求可能非常相似。在此示例中,我们向搜索分析 API 发出批量请求。

#-------------------------------------#
# Define property and request payloads
#-------------------------------------#

web_property = 'https://example.com/'

request_body_1 = {
"startDate": "2015-01-01",
"endDate": "2016-01-01",
"dimensions": ["country", "device"]
}
request_body_2 = {
"startDate": "2016-01-01",
"endDate": "2017-01-01",
"dimensions": ["country", "device"]
}

#--------------------------------#
# Make container to store results
#--------------------------------#

class DataContainer:
def __init__(self):
self.data = []

def callback(self, request_id, response, exception):
if exception is not None:
# do something ...
pass
else:
print(request_id)
self.data.append(response)

dc = DataContainer()

#--------------------------------#
# Build and send batch requests
#--------------------------------#

batch = service.new_batch_http_request(callback=dc.callback)

batch.add(service.query(siteUrl=web_property,
body=request_body_1))
batch.add(service.query(siteUrl=web_property,
body=request_body_2))

batch.execute()
print(dc.data)

关于python - 在 python 中批量请求到 Google Search Console API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41503866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com