Загрузите фид контента страницы Google, используя gdata-python-client

Моя конечная цель - импортировать некоторые данные со страниц сайта 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>

У записи Content Feed есть только узел div с текстом = None.

Я отладил запрос / ответ gdata-python-client и проверил разрешенные данные с сервера в необработанном буфере - любые плановые текстовые данные в содержимом. Следовательно, это ошибка API Google.

Может быть, есть какой-то обходной путь? Может быть, я могу использовать какой-то общий параметр запроса? Что здесь не так?

1 ответ

Решение

Этот код работает для меня в отношении домена Служб Google и 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 

Учитывая, что он в значительной степени идентичен вашему, но он может помочь вам доказать или опровергнуть что-то. Удачи!

Другие вопросы по тегам