2009-07-08 82 views
2

考慮:我應該使用Yahoo-Pipes來刮取div的內容嗎?

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

    -html-
    --body-
    {...}
    --- DIV ID = '富' -
    ----格ID = '1頁'/ -
    ----格ID = '2頁'/ -
    ----格ID = 'PAGE3'/ -
    ----格id ='pageN'/ -
    ---/div-
    {...}
    - /體佩
    -/HTML的

通緝:

  • DIV ID的innerHTML =」 foo'必須由客戶端提取(即JavaScript)的。
    • 它將被拆分成離散項目(即div id ='page1'到div id ='pageN')。
  • API調節可防止服務器端代碼預取數據,因此解析和操作負擔必須放在客戶端上。

問:

  • 難道雅虎管道幫助格式的數據,方便消費?
    • 缺少DOM解析器讓我暫停。
  • 是否有任何現有的管道可以作爲示例?

回答

8

您可以使用YQL模塊,該模塊允許您獲取任意網址,然後使用它們解析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' 
4

是的,這是可行的Y!管道。您只需要'運營商部分'中的兩個模塊:

首先獲取內容的「子元素」。

然後,只需使用 「正則表達式」 模塊通過JSON從您的網站提取DIV的內容並把它:

搜索:

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

替換:

$ 1