2

私の最終的な目標は、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 リクエスト/レスポンスをデバッグし、サーバーからの解決されたデータを raw バッファでチェックしました - コンテンツ内のプラン テキスト データ。したがって、これは Google API のバグです。

いくつかの回避策があるかもしれませんか?一般的なリクエストパラメータを使用できますか? ここで何がうまくいかないのですか?

4

1 に答える 1

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 

与えられたものはあなたのものとほとんど同じですが、何かを証明または反証するのに役立つかもしれません. 幸運を!

于 2013-04-05T14:16:10.513 に答える