Вопрос по поводу универсального парсера
Я столкнулся с проблемой получения контента из нескольких блогов, которые я просканировал.
Я не уверен, в чем причина, но анализ одного или двух блогов с feedparser возвращает мне эту конкретную ошибку:
results = feedparser.parse(url)
ent = []
for entry in results.entries:
e = {}
e['title'] = entry.title
e['content'] = entry.content[0].value
объект не имеет атрибута "контент"
или же
объект не имеет атрибута "ссылка"
Это не относится к остальным моим другим блогам. Приводит ли это к пустому содержанию записи?
1 ответ
Существует соответствие между тегами XML, используемыми в ленте, и атрибутами, доступными для записей в ленте новостей. Просмотрите источник одного из каналов, который вызывал проблему, и посмотрите, какие теги он использует. Вы можете обнаружить, что он не содержит содержимого для записей или что ссылки находятся в поле типа uid
скорее, чем link
,
Затем вам нужно будет написать свой код для обработки небольших изменений, либо с помощью try
/catch
или проверка конкретных атрибутов с hasattr
,
Если вы разместите ссылку на один из рассматриваемых каналов, я мог бы предложить еще несколько советов.