使用gdata-python-client下载Google协作平台页面Content Feed

时间:2012-09-28 06:32:00

标签: python google-data-api google-sites gdata-python-client

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

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条目只有 div 节点, text = None

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

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

1 个答案:

答案 0 :(得分:0)

此代码适用于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 

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