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