2010-03-17 7 views
3

Le fichier rss est montré ci-dessous, je veux obtenir le contenu dans la section médias: groupe. Je vérifie le document de feedparser, mais il semble ne pas le mentionner. Comment faire? Toute aide est appréciée.Comment analyser le "<media:group>" en utilisant feedparser?

<?xml version="1.0" encoding="UTF-8"?> 
<rss xmlns:ymusic="http://music.yahoo.com/rss/1.0/ymusic/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel> 
     <title>XYZ InfoX: Special hello </title> 
     <link>http://www1.XYZInfoX.com/learninghello/home</link> 
     <description>hello</description> 
     <language>en</language>   <copyright /> 
     <pubDate>Wed, 17 Mar 2010 08:50:06 GMT</pubDate> 
     <dc:creator /> 
     <dc:date>2010-03-17T08:50:06Z</dc:date> 
     <dc:language>en</dc:language> <dc:rights /> 
     <image> 
      <title>Voice of America</title> 
      <link>http://www1.XYZInfoX.com/learninghello</link> 
      <url>http://media.XYZInfoX.com/designimages/XYZRSSIcon.gif</url> 
     </image> 

     <item> 
       <title>Who Were the Deadliest Gunmen of the Wild West?</title> 
       <link>http://www1.XYZInfoX.com/learninghello/home/Deadliest-Gunmen-of-the-Wild-West-87826807.html</link> 
       <description> The story of two of them: "Killin'" Jim Miller was an outlaw, "Texas" John Slaughter was a lawman | EXPLORATIONS </description> 
       <pubDate>Wed, 17 Mar 2010 00:38:48 GMT</pubDate> 
       <guid isPermaLink="false">87826807</guid> 
       <dc:creator></dc:creator> 
       <dc:date>2010-03-17T00:38:48Z</dc:date>                                  
       <media:group> 
        <media:content url="http://media.XYZInfoX.com/images/archives_peace_comm_480_16mar_se.jpg" medium="image" isDefault="true" height="300" width="480" /> 
        <media:content url="http://media.XYZInfoX.com/images/archives_peace_comm_230_16mar_se_edited-1.jpg" medium="image" isDefault="false" height="230" width="230" /> 
        <media:content url="http://media.XYZInfoX.com/images/tex_trans_lawmans_230_16mar10_se.jpg" medium="image" isDefault="false" height="230" width="230" /> 
        <media:content url="http://www.XYZInfoX.com/MediaAssets2/learninghello/dalet/se-exp-outlaws-part2-17mar2010.Mp3" type="audio/mpeg" medium="audio" isDefault="false" /> 
       </media:group> 
    </item> 
+0

Je peux vous dire comment extraire des données à partir d'un document XML, mais je ne suis pas au courant 'feedparser' ou la façon dont il présente un flux. Si vous reformulez la question dans un 'J'ai ces données d'entrée',' Je veux ces données de sortie', il serait plus facile de vous aider. – MattH

+0

Merci, mais je veux juste faire l'exemple du code. J'ai compris qu'il peut être analysé en tant que xml ou par exprès régulier. – Mingo

+0

C: Je ne comprends pas ce que vous entendez par "Merci, mais je veux juste faire l'exemple de code". Cela a encore moins de sens dans le contexte d'une réponse à "veuillez spécifier un exemple de vos données d'entrée et de sortie souhaitées". – MattH

Répondre

3

feedparser 4.1 disponible auprès de PyPI a ce bug. La solution pour moi était d'obtenir le dernier fichier feedparser.py (4.2 pré) du référentiel.

svn checkout http://feedparser.googlecode.com/svn/trunk/ feedparser-readonly 
cd feedparser-readonly 
python setup.py install 

maintenant vous pouvez accéder à tous les articles MRSS

>>> import feedparser # the new version! 
>>> d = feedparser.parse(MY_XML_URL) 
>>> for content in d.entries[0].media_content: print content['url'] 

devrait faire le travail pour vous

0

Vous pouvez analyser le flux en utilisant

feed = feedparser.parse(your_feeds_url) 

et ensuite accéder à vos éléments XML à l'aide soit d'un accès d'attribut de python ou un accès dictionnaire comme sur feed et ses sous-éléments. La première méthode ne fonctionnera pas pour un nom d'élément comme media:content, utilisez donc la dernière méthode.

Le reste doit être clair après avoir étudié les exemples à http://www.feedparser.org

+0

J'imprime le contenu du flux, il ne contient pas les informations de médias: contenu. Je pense que feedparser passe à l'analyse. Ceci est l'URL RSS: http://www1.voanews.com/templates/Articles.rss?sectionPath=/learningenglish/home – Mingo

Questions connexes