2009-07-08 5 views
2

Gegeben:Sollte ich Yahoo-Pipes verwenden, um den Inhalt eines Div zu kratzen?

  • URL - http://www.contoso.com/search.php?q= {param} zurückgibt:

    -html-
    --body-
    {...}
    --- div id = 'foo' -
    ---- div id = 'Seite1'/-
    ---- div id = 'page2'/-
    ---- div id = 'page3'/-
    ---- div id = 'SeiteN'/-
    ---/div-
    {...}
    -/Body-
    -/html-

Gesucht:

  • die Innerhtml von div id =‘ foo 'muss vom Kunden abgeholt werden (d. h Javascript).
  • Es wird in einzelne Elemente aufgeteilt (z.
  • Die API-Drosselung verhindert, dass serverseitiger Code die Daten vorab abruft, sodass die Analyse- und Manipulationslast auf dem Client platziert werden muss.

Frage:

  • Könnte Yahoo-Pipes helfen, die Daten für eine einfacheren Verbrauch formatieren?
    • Das Fehlen eines DOM-Parser gibt mir eine Pause.
  • Gibt es vorhandene Rohre, die als Beispiel dienen könnten?

Antwort

8

Sie können das Modul YQL verwenden, mit dem Sie beliebige URLs abrufen und anschließend analysieren können XPath. Eine Beispiel-YQL-Abfrage:

select * from html where url="http://finance.yahoo.com/q?s=yhoo" and 
    xpath='//div[@id="yfi_headlines"]/div[2]/ul/li/a' 
4

Ja, es ist machbar mit Y! Rohre. Sie benötigen nur zwei Module aus dem Bereich 'Operatoren':

Erstes "Sub Element", um nur den Inhalt zu erhalten.

Dann nutzen Sie einfach die "Regex" Modul den div Inhalt zu extrahieren und durch JSON von Ihrer Website:

Suche:

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

ersetzen:

$ 1

Verwandte Themen