2009-10-22 6 views
2

J'ai un tube Yahoo qui prend le flux Atom d'un groupe Google, et je veux faire un traitement sur le texte intégral du message (exécution de diverses expressions régulières pour extraire des données). Je peux obtenir le texte d'un message dans le texte brut à partir de Google en utilisant une URL comme ceci:Récupérer du texte brut dans Yahoo Pipes

http://groups.google.com/group/(group_name)/msg/(message_id)?dmode=source&output=gplain 

Cependant, je vais avoir du mal à obtenir à l'intérieur des tubes Yahoo comme une valeur de chaîne. Récupérer la page rejette les pages non HTML. YQL en utilisant la table html semble fonctionner, et enveloppe le texte brut à l'intérieur un élément p, dont le texte que je peux extraire comme ceci:

select * from html where url="..." and xpath="//p" 

Toutefois, si le texte du message contient des balises html, YQL renvoie une sous-arborescence HTML au lieu de un string. Est-il possible de l'aplatir dans sa source HTML?

+0

Pouvez-vous poster le lien vers le tuyau? – Victor

Répondre

1

L'astuce consiste à supprimer le "output = gplain" et récupérer le contenu de l'élément pré.

select content from html 
where url="http://groups.google.com/group/haml/msg/0f78eda2f5ef802d?dmode=source" 
and xpath='//div[contains(@class,"maincontbox")]/pre' 

J'ai créé une pipe avec groupe Google et ID de message comme entrées pour démontrer:

http://pipes.yahoo.com/pipes/pipe.info?_id=3d345e162405e7dbd47d73b95c21f102

+0

J'ai essayé de cliquer sur le lien "Get as JSON", et la balise '' est manquante dans le texte de l'article. – LaC

+0

Hmm. Récupérer des données semble supprimer des éléments. [Cette pipe] (http://pipes.yahoo.com/pipes/pipe.info?_id=0d78444a7ef1e414fc483151c5c0981b) montre comment le résultat de Fetch Data est différent de simplement entrer l'URL dans votre navigateur, en particulier l'abbr est manquant comme vous mentionné. –

Questions connexes