Próbuję użyć YQL, aby wyodrębnić część HTML z serii stron internetowych. Same strony mają nieco inną strukturę (więc "Strona pobierania" Pipesa Yahoo z funkcją "Wytnij zawartość" nie działa dobrze), ale fragment, który mnie interesuje, zawsze ma ten sam atrybut class
.Czy istnieje sposób na zwrócenie HTML przez YQL?
Jeśli mam stronę HTML tak:
<html>
<body>
<div class="foo">
<p>Wolf</p>
<ul>
<li>Dog</li>
<li>Cat</li>
</ul>
</div>
</body>
</html>
i użycie wyrażenia YQL takiego:
SELECT * FROM html
WHERE url="http://example.com/containing-the-fragment-above"
AND xpath="//div[@class='foo']"
co wrócę to (podobno nieuporządkowane?) Elementy DOM, gdzie czego chcę, to sama treść HTML. Próbowałem także SELECT content
, ale to tylko wybiera treść tekstową. Chcę HTML. czy to możliwe?
Piękne! Dziękuję Ci. Jedyny problem, jaki mam teraz, to jak uzyskać zmienną Yahoo Pipes w wyrażeniu YQL. Na przykład, select * from html.tostring gdzie url = item.link i XPath = '// div [@ id = "foo"]' oddaje się błąd „Nieprawidłowy identfier item.link. Mnie jest jedyny obsługiwany identyfikator w tym kontekście. " Jakieś pomysły, jak to robię? (Przepraszamy za zaczęli spożywać fragmencie kodu, wygląda komentarze nie pozwalają znacznie w sposobie formatowania) –
zorientowali się odpowiedź na to: tworzenie oddzielnej rury, która pobiera dane wejściowe URL, który wstawia się w konstruktora ciąg która buduje zapytanie YQL i dołącz to jako zapytanie do widżetu YQL. Następnie w głównej rurze użyj tej nowej rury i podaj adres URL jako dane wejściowe. Myślę, że prawdopodobnie otworzę nowe pytanie w tej sprawie, aby ludzie nie musieli tego szukać w komentarzach do tego. –
otworzony http://stackoverflow.com/questions/2889406/how-do-i-pass-a-yahoo-pipes-item-into-a-yql-query –