Bir dizi web sayfasından HTML'nin bir bölümünü ayıklamak için YQL'yi kullanmaya çalışıyorum. Sayfaların kendileri biraz farklı bir yapıya sahiptir (bu yüzden "Kesilmiş içerik" özelliği ile bir Yahoo Pipes "Sayfa Getir" özelliği iyi çalışmaz) ancak ilgilendiğim parça her zaman aynı class
özniteliğine sahiptir.YQL'i HTML'ye döndürmenin bir yolu var mı?
böyle bir HTML sayfası varsa:
<html>
<body>
<div class="foo">
<p>Wolf</p>
<ul>
<li>Dog</li>
<li>Cat</li>
</ul>
</div>
</body>
</html>
ve bunun gibi bir YQL ifadesini kullanın:
SELECT * FROM html
WHERE url="http://example.com/containing-the-fragment-above"
AND xpath="//div[@class='foo']"
ne geri almak (görünüşte sırasız?) Olan DOM elemanları, İstediğim şey HTML içeriğidir. Ben de SELECT content
denedim, ancak sadece metinsel içeriği seçer. HTML istiyorum. Mümkün mü?
Güzel! Teşekkür ederim. Şu anda sahip olduğum tek sorun, YQL ifadesine bir Yahoo Pipes değişkeni elde etmektir. hata geri verir '[id = "foo" @] // div' Örneğin, * url = item.link ve nerede html.tostring gelen xpath = "Geçersiz identfier item.link. Benim select Bu bağlamda desteklenen tek tanımlayıcı. " Bunu nasıl yaptığım hakkında bir fikrin var mı? (Biçimlendirilmiş kod parçacığı için özür dilerim, yorumların biçimlendirmenin çok fazla yapılmasına izin vermez) –
Bunun cevabını anladım: bir URL girişi alan ayrı bir boru oluşturmak, bunu oluşturan bir dize oluşturucuya ekler YQL sorgusu ve bunu YQL widget'ına sorgu olarak ekleyin. Daha sonra ana borunuzda, bu yeni boruyu kullanın ve URL'yi giriş olarak girin. Sanırım muhtemelen bunun için yeni bir soru açacağım, bu yüzden insanların bunu yorumlarında avlamak zorunda kalmayacakları. –
Açıldı: http://stackoverflow.com/questions/2889406/how-do-i-pass-a-yahoo-pipes-item-into-a-yql-query –