Elemzési nokogiri rubin

Elemzési nokogiri rubin

A cikk ismerteti, egy egyszerű hír elemző a könyvtárat használó nokogiri módszer segítségével CSS-választókat.

Elemzési webes alkalmazások Ruby nyelv - ez könnyebb, mint gondolná. Kezdjük egy egyszerű példát, a cél, hogy megkapja a formázott JSON formátumban tömb tárgyak fogják használni a helyi moziban.

Az első lépés az, hogy meghatározza az utat, hogy töltse be a html oldalt. A Ruby erre a célra valósul Net :: HTTP. használ nyílt uri könyvtárban. azt használjuk a kódot az oldal.

Tehát az első dolog, amit meg fog tenni html grabing kérés egy távoli szerverre.


Ok, megvan az oldalt forráskód, most kezdeni információkat. Erre a célra gem Nokogiri. Most hozzon létre egy új példányt Nokogiri, aki megkapja a kódot.

Használja nokogiri Nagyon jó tehetünk az információk keresését a CSS-szelektor, ami nagyon kényelmes, akkor is csinál egy keresést XPath.

Nos, van egy dokumentum, amely önmagában tartalmaz egy listát a filmeket. Mindegyikben van egy hasonló szerkezet html típusú, például:


Minden osztálynak van egy lista a filmek és a termelő nevét .showing. tudjuk korlátozni a kiválasztás az oldalon megadásával határain belül ebben az osztályban.
Nézzük az egyes sorban a folyamat egy időben, de az elején meg fog nyújtani egy kész megoldást.


Megjegyzés: Köszönöm a véleményét kódot Anton Gorodisheninu.

Nézzük meg, mi teszi minden vonalon


Először is kap egy egyedi azonosítót hírlevelünkre, amely arra szolgál, hogy az id attribútum a HTML kódba.
használjuk opció # 96; # 96; mutatja [ 'id'] # 96; # 96; amely visszatér hozzánk „event_7557”. Mi csak az érdekli az integer azonosítót, így osztja az így kapott szöveget az aláhúzás karakter a tömb .split ( „_”), majd vegye az utolsó elem egy tömb, és átalakítani, hogy egy egész típusú .last.to_i


Itt megtalálja az összes tag a létesítmény használata # 96; # 96; .css # 96; # 96; olyan módszer, amely visszaadja egy tömb megfelelő elemei. Ezután minden egyes elem módszerével .strip távolítsa el az üres térben. Például a fenti visszatér kódot [ "komédia", "DVD", "film"]


Itt megkapjuk a cím az első at_css elem. amely található a választó h1> a. Ezután minden egyes al-választó eltávolítjuk, az is, hogy a neve a span. Vesszük a mi szöveges linkek és távolítsa el a felesleges szóközöket.

Ezután a kódot a dátum és idő kijelzése. Itt egy kicsit bonyolultabb, mert a filmek mutathat néhány nap, és néha az ár lehet ugyanabban a cellában. Mi mapim dátum, amely megtalálható a DateTime.parse, és az eredmény egy sor Ruby tárgyak - DateTime.


Kapunk egy leírást, ahol a törölni # 96; # 96; [több. ] # 96; # 96; Használata .gsub módszer

Írunk a kapott értékeket egy tömbben.

Most a talált információt kiadási konvertálni JSON


Ehhez adjuk hozzá a kód