2

鉴于:

  • 网址 - http://www.contoso.com/search.php?q= {param} 返回:

    -html-
    --body-
    {...}
    ---div id='foo'-
    ----div id='page1'/-
    ----div id='page2'/-
    ---- div id='page3'/-
    ----div id='pageN'/-
    ---/div-
    {...}
    --/body-
    -/html-

通缉:

  • div id='foo' 的innerHtml 必须由客户端获取(即Javascript)。
    • 它将被拆分为离散的项目(即 div id='page1' 到 div id='pageN')。
  • API Throttling 防止服务器端代码预取数据,因此解析和操作的负担必须放在客户端。

问题:

  • Yahoo-Pipes 能否帮助格式化数据以便于使用?
    • 缺少 DOM 解析器让我停下来。
  • 是否有任何现有的管道可以作为示例?
4

2 回答 2

8

您可以使用YQL模块,它允许您获取任意 URL,然后使用 XPath 解析它们。示例 YQL 查询:

select * from html where url="http://finance.yahoo.com/q?s=yhoo" and
  xpath='//div[@id="yfi_headlines"]/div[2]/ul/li/a'
于 2009-07-08T00:48:59.287 回答
4

是的,这对 Y 来说是可行的!管道。您只需要“操作员部分”中的两个模块:

第一个“子元素”只获取内容。

然后只需使用“Regex”模块来提取 div 内容并通过 JSON 从您的站点获取它:

搜索:

^.*?<div id="foo">(.*?)</div>.*?$

代替:

1美元

于 2009-07-08T00:48:03.763 回答