1

希望这很容易。我正在尝试使用 YQL 从 wordpress 博客的不同文章中提取“标题”图像。每篇文章都有一个不同的“标题”图像,类名略有不同(无 id)。我需要的每张图片都共享一个基本的 CSS 类,“alignright”。如果我进行如下查询,则不会返回任何内容。

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright']"

但是,如果我更改查询以使其将类与特定图像完全匹配

select * from html where url="urlofblog.com/" and xpath="//img[@class='alignright size-full wp-image-3051']"

我得到了有问题的图像。看起来 YQL 将 "img[@class=" 视为一个大字符串,而不是多个输入。问题是当被视为一个大字符串时,这些图像类都不匹配。这是我试图解决这种情况的方法:

  1. 我研究了 YQL 的“like”参数。(没有运气找到有用的东西)
  2. 试图用 xpath 找到更好的方法(直到今天我从未使用过)。那次搜索把我带到了这里。到目前为止,我仍然无法让它工作。
  3. 我试过使用:img[matches(@class, '\balignright\b')],但我不认为 YQL 支持它。

有谁知道是否有办法使用该基本 css 类获取图像?我无权更改博客上的任何内容(例如插入 ID)。

4

2 回答 2

1

您可以使用 XPath 字符串函数,例如starts-with

//img[starts-with(@class, 'alignright')]
于 2012-07-17T23:04:18.467 回答
1

在这里使用 XPath contains() 字符串函数会很好。看起来您正在尝试从 Wordpress 站点获取图像,该站点将根据需要向项目添加类。不要担心它是否以 CSS 类开头,只是 img 在 class 属性中有 CSS 类。

//img[contains(@class,'alignright')]
于 2012-07-18T18:19:33.700 回答