5

嘿,我想使用 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,我将不胜感激!

谢谢。

4

3 回答 3

11

关于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']"
于 2010-10-25T16:18:32.220 回答
0

您还可以像这样编写多个 XPATH 选择:

SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title' or @name='description']"
于 2016-07-18T12:33:58.720 回答
-3

这不可能。您需要执行此查询两次。第一次用于第一个 xpath,第二次用于第二个 xpath。当然,您可以编写自己的开放表声明并为此类查询提供支持。

于 2010-10-13T16:49:41.207 回答