我正在尝试使用 Query(使用 .Net Google Data API)列出 Google 网站中存在的所有可用列表、网页、公告、文件柜:
如果有大约。Google 站点中存在 <500 个项目,则它可以正常工作。能够列出所有可用的页面。
但是,谷歌网站大约。>500 项(包括所有附件、评论、页面等)此查询仅返回第一个块中存在的那些项。在这种情况下,下一个块 URL 为空,因此我无法使用开始索引属性查询下一个块,并且无法在此处列出所有可用页面。
有谁知道如何克服这个问题?提前致谢
我正在尝试使用 Query(使用 .Net Google Data API)列出 Google 网站中存在的所有可用列表、网页、公告、文件柜:
如果有大约。Google 站点中存在 <500 个项目,则它可以正常工作。能够列出所有可用的页面。
但是,谷歌网站大约。>500 项(包括所有附件、评论、页面等)此查询仅返回第一个块中存在的那些项。在这种情况下,下一个块 URL 为空,因此我无法使用开始索引属性查询下一个块,并且无法在此处列出所有可用页面。
有谁知道如何克服这个问题?提前致谢
调查同样的问题,我在这个关于 Python YouTube API 的问题中找到了答案。
内容提要查询返回单个结果块。您可以使用 GetNextLink 方法检索下一个块(如果有)。这在“查询结果”下的数据 API协议参考中进行了描述。
这是一个 Python 解决方案(带有 2 Legged OAuth for Google Apps),它依赖于前面提到的 YouTube API 问题的答案。
CONSUMER_KEY = 'some_key'
CONSUMER_SECRET = 'some_secret'
REQUESTOR_ID = 'some_id@' + CONSUMER_KEY
DOMAIN = 'some_domain'
def content_generator(client):
content_feed = client.GetContentFeed()
while content_feed is not None:
for content in content_feed.entry:
yield content
next_link = content_feed.GetNextLink()
if next_link is None:
content_feed = None
else:
content_feed = client.GetContentFeed(next_link.href)
client = gdata.sites.client.SitesClient(source='some_source', site=SITE, domain=DOMAIN)
client.auth_token = gdata.gauth.TwoLeggedOAuthHmacToken(CONSUMER_KEY, CONSUMER_SECRET, REQUESTOR_ID)
for page in content_generator(client):
# do something
print(page.page_name)