Как использовать несколько селекторов xpath в запросе YQL


Эй, я хотел бы почистить некоторые данные из своего блога с помощью YQL:

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

Как я могу использовать разные биты xpath в своем запросе? Например, могу ли я сделать что-то вроде:

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

Предполагая, что я хочу получить должность и звание? Я думаю, что мог бы использовать весь HTML, но я бы предпочел использовать только то, что мне нужно, так как скорость здесь является проблемой.

Как только у меня будет HTML, я хочу извлечь текст из разметки, можно ли для этого использовать регулярные выражения PHP?

Я тоже тебя понимаю можете использовать синтаксис CSS, если у вас есть опыт использования этого с YQL и вы могли бы подсказать мне, как я мог бы написать запрос, аналогичный приведенному выше, но в CSS, а не в XPATH, я был бы признателен!

Спасибо.

Author: Umar Hansa, 2010-10-13

3 answers

Что касается CSS:

Смотрите для этого сам веб-сайт YQL. Поищите в Google YQL и CSS (я могу разместить здесь только одну ссылку, а вторая более полезна.)

Пример, который у них есть, на самом деле больше не работает, но вы можете попробовать этот пример, который удаляет вопросы с первой страницы stackoverflow.

Пример YQL

Несколько вариантов выбора с одним XPATH:

Вы МОЖЕТЕ сделать это напрямую с помощью синтаксиса xpath. например,

SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title']|//head/meta[@name='description']|//head/meta[@name='keywords']"
 11
Author: spier, 2010-10-25 16:42:04

Вы также можете написать несколько вариантов XPATH, подобных этому:

SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title' or @name='description']"
 0
Author: NFpeter, 2016-07-18 12:33:58

Это невозможно. Вам нужно выполнить этот запрос дважды. Первый раз для первого xpath и второй раз для второго xpath. Конечно, вы можете написать свое собственное объявление открытой таблицы и обеспечить поддержку такого рода запросов.

 -3
Author: Skarab, 2010-10-13 16:49:41