2010-10-13 11 views
5

Hej, Chciałbym zeskrobać niektóre dane z mojego bloga za pomocą YQL:Jak używać wiele selektorów XPath w zapytaniu YQL

SELECT * FROM html WHERE url="http://site.com/blog" AND xpath="//div[@class='post']" 

Jak mogę używać różnych bitów XPath w mojej kwerendy? Na przykład. mogę zrobić coś takiego:

SELECT * FROM html WHERE url="http://site.com/blog" AND xpath="//div[@class='post']" AND xpath ="//div[@class='title']" 

przy założeniu, że chcę uzyskać stanowisko i tytuł? Sądzę, że mógłbym wziąć cały HTML, ale wolę brać tylko to, czego potrzebuję, ponieważ szybkość jest tu problemem.

Kiedy już mam HTML Chcę wyodrębnić tekst ze znaczników, czy można używać do tego wyrażeń regularnych PHP?

Rozumiem również, że możesz używać składni CSS, jeśli masz doświadczenie z używaniem tego z YQL i mógłbyś poprowadzić mnie, jak mógłbym napisać podobne zapytanie do powyższego, ale w CSS zamiast XPATH byłbym wdzięczny!

Dzięki.

Odpowiedz

11

chodzi CSS:

Zobacz stronę dla tego samego YQL. Wyszukaj google dla YQL i CSS (mogę tylko opublikować jeden link tutaj, a drugi jest bardziej przydatny).

Przykład, który tam już nie działa, ale możesz wypróbować ten przykład, który zadaje pytania z pierwszej strony stackoverflow.

YQL example

Wiele Wybiera z jednym XPATH:

Można to zrobić bezpośrednio ze składnią XPath. na przykład

SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title']|//head/meta[@name='description']|//head/meta[@name='keywords']" 
+0

Dzięki, nie byłem pewien składni, ale to wyjaśniło. –

+0

Bardzo, bardzo przydatne! Dziękuję Ci. – talkingnews

+0

Wycofano .. Sam to wymyśliłem, ale chciałem wiedzieć, czy mogę dać spację lub coś pomiędzy wynikiem dwóch xPaths, tak że później mógłbym przeanalizować wynik i uzyskać dwie różne wartości. – SoulMan

-3

Nie jest to możliwe. Tę kwerendę należy wykonać dwukrotnie. Pierwszy raz dla pierwszej ścieżki xpath i drugi dla drugiej ścieżki xpath. Oczywiście możesz napisać własną deklarację open table i zapewnić wsparcie dla tego rodzaju zapytań.

+0

ok dzięki za info! –

0

Można również napisać Multiple XPATH Wybiera tak:

SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title' or @name='description']" 
Powiązane problemy