2

与えられた:

  • URL- 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'からdivid='pageN')。
  • APIスロットリングは、サーバー側のコードがデータをプリフェッチするのを防ぐため、解析と操作の負担をクライアントに課す必要があります。

質問:

  • 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でできます!パイプ。「Operators セクション」から 2 つのモジュールのみが必要です。

コンテンツのみを取得する最初の「サブ要素」。

次に、「Regex」モジュールを使用して div コンテンツを抽出し、サイトから JSON を介して取得します。

探す:

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

交換:

$1

于 2009-07-08T00:48:03.763 に答える