嘿,我想使用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我会很感激!
感谢。
答案 0 :(得分:11)
关于CSS:
请参阅YQL网站本身。在谷歌搜索YQL和CSS(我只能在这里发布一个链接,第二个链接更有用。)
他们在那里的例子实际上已经不再有效了,但你可以尝试这个例子,它从stackoverflow的首页上删除了问题。
使用一个XPATH进行多次选择:
您可以使用xpath语法直接执行此操作。 e.g。
SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title']|//head/meta[@name='description']|//head/meta[@name='keywords']"
答案 1 :(得分:0)
您还可以编写多个XPATH选择,如下所示:
SELECT * FROM html WHERE url="www.asscompact.de" and xpath="//head/meta[@name='title' or @name='description']"
答案 2 :(得分:-3)
这是不可能的。您需要执行此查询两次。第一个xpath,第二次是第二个xpath。当然,您可以编写自己的open table声明,并为此类查询提供支持。