Sto cercando di utilizzare YQL per estrarre una porzione di HTML da una serie di pagine Web. Le pagine stesse hanno una struttura leggermente diversa (quindi una "pagina di recupero" di Yahoo Pipes con la sua funzione "Taglia contenuto" non funziona bene) ma il frammento a cui sono interessato ha sempre lo stesso attributo class
.C'è un modo per ottenere YQL per restituire HTML?
Se ho una pagina HTML come questo:
<html>
<body>
<div class="foo">
<p>Wolf</p>
<ul>
<li>Dog</li>
<li>Cat</li>
</ul>
</div>
</body>
</html>
e utilizzare un'espressione YQL come questo:
SELECT * FROM html
WHERE url="http://example.com/containing-the-fragment-above"
AND xpath="//div[@class='foo']"
quello che torno sono la (apparentemente non ordinato?) Elementi DOM, in cui quello che voglio è il contenuto HTML stesso. Ho provato anche SELECT content
, ma questo seleziona solo il contenuto testuale. Voglio HTML. È possibile?
Bello! Grazie. L'unico problema che ho ora è come ottenere una variabile Yahoo Pipes nell'espressione YQL. Ad esempio, select * from html.tostring dove url = item.link e XPath = '// div [@ id = "foo"]' restituisce l'errore "non valido Identficatore item.link. Mi è l'unico identificatore supportato in questo contesto. " Qualche idea su come lo faccio? (Ci scusiamo per lo snippet di codice macellato, sembra che i commenti non consentano molto in termini di formattazione) –
Capito la risposta a questo: creare una pipe separata che accetta un input URL, inserendola in un generatore di stringhe che costruisce la query YQL e allegarla come query al widget YQL. Quindi, nella tua pipe principale, usa questo nuovo pipe e passa l'URL come input. Penso che probabilmente aprirò una nuova domanda per questo in modo specifico in modo che la gente non debba scovarla nei commenti di questo. –
Aperto: http://stackoverflow.com/questions/2889406/how-do-i-pass-a-yahoo-pipes-item-into-a-yql-query –