вопрос по поводу универсального парсера фидов - PullRequest
0 голосов
/ 22 июня 2010

Я столкнулся с проблемой получения контента из нескольких фидов блогов, которые я просканировал.

Я не уверен, в чем причина, но анализ одного или двух блогов с feedparser возвращает мне эту конкретную ошибку:

results = feedparser.parse(url)

  ent = []

  for entry in results.entries:
     e = {}
     e['title'] = entry.title
     e['content'] = entry.content[0].value

объект не имеет атрибута 'content'

или

объект не имеет атрибута 'link'

Такого не было в остальных моих блогах. Приводит ли пустой контент записи к этому?

1 Ответ

1 голос
/ 22 июня 2010

Существует соответствие между тегами XML, используемыми в ленте, и атрибутами, доступными в записях в ленте новостей. Просмотрите источник одного из каналов, который вызывал проблему, и посмотрите, какие теги он использует. Вы можете обнаружить, что он не содержит содержимого для записей или что ссылки находятся в поле типа uid, а не link.

Затем вам нужно будет написать свой код для обработки небольших изменений, либо с помощью try / catch, либо с помощью проверки hasattr.

для определенных атрибутов

Если вы разместите ссылку на один из рассматриваемых каналов, я мог бы предложить еще несколько советов.

...