Skip to main content
 首页 » 编程设计

python之使用 gdata-python-client 下载 Google 站点页面内容提要

2025年05月04日10mengfanrong

我的最终目标是从 Google 站点页面导入一些数据。 我正在尝试使用 gdata-python-client (v2.0.17) 下载特定的内容提要:

self.client = gdata.sites.client.SitesClient(source=SOURCE_APP_NAME) 
self.client.client_login(USERNAME, PASSWORD, source=SOURCE_APP_NAME, service=self.client.auth_service)      
self.client.site = SITE 
self.client.domain = DOMAIN 
 
uri = '%s?path=%s' % (self.client.MakeContentFeedUri(), '[PAGE PATH]') 
feed = self.client.GetContentFeed(uri=uri) 
entry = feed.entry[0] 
... 

结果 entry.content 有一个 xhtml 格式的页面内容。但是这棵树不包含页面中的任何计划文本数据。只有 html 页面结构和链接。

例如我的测试页有

 <div>Some text</div> 

ContentFeed 条目只有带有 text=None 的 div 节点。

我已经调试了 gdata-python-client 请求/响应并检查了原始缓冲区中来自服务器的已解析数据 - 内容中的任何计划文本数据。因此这是一个 Google API 错误。

可能有一些解决方法?也许我可以使用一些常见的请求参数?这里出了什么问题?

请您参考如下方法:

此代码适用于 Google Apps 域和 gdata 2.0.17:

import atom.data 
import gdata.sites.client 
import gdata.sites.data 
 
client = gdata.sites.client.SitesClient(source='yourCo-yourAppName-v1', site='examplesite', domain='example.com') 
client.ClientLogin('admin@example.com', 'examplepassword', client.source); 
 
uri = '%s?path=%s' % (client.MakeContentFeedUri(), '/home') 
feed = client.GetContentFeed(uri=uri) 
entry = feed.entry[0] 
print entry  

鉴于它与您的几乎相同,但它可能会帮助您证明或反驳某些事情。祝你好运!