2010-06-22 3 views
0

J'ai rencontré un problème en saisissant le contenu de quelques flux de blog que j'ai explorés.question concernant l'analyseur de flux universel

Je suis incertain quelle est la raison, mais en analysant un ou deux blogs avec le feedparser me renvoie cette erreur particulière:

results = feedparser.parse(url) 

    ent = [] 

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

object has no attribute 'content'

ou

object has no attribute 'link'

Ce n » t été le cas pour le reste de mes autres blogs. Est-ce que le contenu de l'entrée vide entraîne cela?

Répondre

1

Il existe un mappage entre les balises XML utilisées dans le flux et les attributs disponibles dans les entrées de feedparser. Afficher la source de l'un des flux à l'origine du problème et voir les tags qu'il utilise. Vous pourriez trouver qu'il ne comprend pas le contenu des entrées ou que les liens sont dans un domaine comme uid plutôt que link.

Vous devrez ensuite écrire votre code pour gérer les légères variations, soit en utilisant try/catch ou en recherchant des attributs spécifiques avec hasattr.

Si vous postez un lien vers l'un des flux en question, je pourrais être en mesure d'offrir d'autres conseils.

+0

question rapide. Est-ce que les modèles de script personnalisés utilisés par divers blogs blogspot modifient la façon dont le contenu est structuré. Après avoir regardé le code, le contenu d'un couple de blogs se trouve dans le champ 'résumé' au lieu du champ 'contenu'. – goh

+0

J'ai regardé rapidement Blogspot et je n'ai pas trouvé de moyen de modifier le modèle pour les flux. Le blog que j'ai regardé a utilisé 'content' dans le flux Atom et' description' dans le RSS. Avez-vous les URL pour un couple que vous avez regardé qui avait des différences? – mikej