OpenRefine (dříve Google Refine) je nástroj pro efektivní hromadné zpracování a transformaci textu. Je zdarma a nainstalujete si ho na svůj počítač a data tak zůstávají u vás. V on-line marketingu se často používá pro analýzu klíčových slov, mj. díky schopnosti najít a seskupit podobné textové řetězce.
Krom toho umí také (mimo jiné):
Většinu uvedených funkcí realizujete pomocí jazyka GREL (General Refine Expression Language).
Právě tyhle funkce jsem použil ve svém řešení.
Výhodou OpenRefine je, že transformaci skládající se z několika desítek kroků můžete uložit a opakovaně používat na podobná vstupní data.
Můj případ je trochu specifický, ale stejný princip dokážete využít pro mnoho podobných situací.
Používám vyšší desítky Chrome doplňků a proto používám doplněk pro jejich správu SimpleExtManager. Umožňuje seskupit doplňky do skupin a jednotlivě či po skupinách je zapínat/vypínat. Mým cílem bylo vytvořit seznam mých doplňků vč. názvu, odkazu a dalších informací (uvedených na stránkách doplňků).
SimpleExtManager dokáže seznam doplňků exportovat, ale export obsahuje jen název skupiny a ID doplňku. Krom toho je exportovaný soubor hybrid mezi XML a JSON formátem.
Mým cílem tedy bylo:
získat z exportu IDčka doplňků (ale zachovat vazbu na skupinu, do které jsem si doplněk zařadil)
z IDček složit URL doplňku
https://chrome.google.com/webstore/detail/XXX
, kde XXX je ID doplňku (ačkoliv se URL přesměruje potom na jinou URL – obsahující i název) ?hl=en
zajistíte, že vždy dostanete stránku v anglické verzi (pokud existuje ve více jazycích)stáhnout HTML stránky s informacemi o doplňku
z HTML kódu stránky extrahovat název a další informace o doplňku
exportovat takto získaná data jako CSV či XLSX
V textovém popisu nepůjdu úplně krok za krokem celý postup. Některé kroky, pro extrakci textu z HTML se opakují. Klíčové kroky vám ukážu, krok za krokem ve videu.
Celou sadu kroků si můžete stáhnout, importovat a aplikovat na svůj export (resp. Backup) z SimpleExtManageru.
Prvním krokem je načtení dat do OpenRefine. Vzhledem k tomu, že exportovaný soubor je XML (v němž jsou pak JSONy), zvolíme XML a vybereme uzel <val>
.
Dále pak s daty budeme pracovat:
U většiny transformací postupujeme tak, že na základě dat z jednoho sloupce vytvoříme další sloupec. Použijeme tedy volbu Edit column > Add column based on this column a zapíšeme GREL výraz (kde value
je hodnotou z aktuálního sloupce).
Kroky od načtení vstupních dat až po získání tabulky se všemi informacemi o jednotlivých Chrome doplňcích v Excelu (či CSV) ukazuji ve videu.
value.parseJson()
– transformace vstupu na JSON (získávám uzel items
)
forEach()
(viz dokumentaci) – procházení polem (takto z JSONu získám IDčka a zřetězím je do stringu, kde oddělovačem je čárka a mezera forEach(value.parseJson().items,v,v).join(", ")
)
value.parseHtml().select("meta[> - získaný kód webové stránky transformuji na HTML, najdu uzly meta tagu
og:title
(vrací pole, proto čtu první prvkek [0]
) a z něj HTML atribut content
value.find(/<a class="C-b-p-D-u-y h-C-b-p-D-xd-y" href="([^"]+)" target="_blank" rel="nofollow">/)[0].match(/.*href="([^"]+)".*/)[0]
- pokud si pro nalezení hodnoty v HTML kódu nevystačíte s CSS selectorem, můžete použít funkci find()
a hledat řetězec pomocí regulárního výrazu
a následně z něj pomocí funkce match()
zachytit jen část - v našem případě hodnotu atributu href pomocí části ([^"]+)
find()
stačí, že regulárnímu výrazu odpovídá část vstupní hodnoty, ale u match()
se musí shodovat s celým řetězcem (proto zde použitý regulární výraz začíná a končí .*
)Pokud si chcete vše vyzkoušet přímo na mém příkladu, můžete si stáhnout JSON s konfigurací transformace.
Mým finálním cílem bylo vytvoření seznamu Chrome doplňků do článku. Proto jsem z OpenRefinu exportoval data jako CSV a převedl je pomocí regulárního výrazu na HTML v požadovaném tvaru.
Jak se zbavit (not set) v Session Source a Session Medium?
Chcete doměřit efekt vaší offline reklamy, ze které vedete lidi na váš web? Jde to…
Tenhle článek jsem měl rozepsaný fakt dlouho, ale je stále aktuální… Trápí mě, že opakovaně…
Poslední dobou jsem se setkal s pár majiteli malých firem, kteří mají web a snaží…
Občas se mě někdo ptá, co používám pro tvorbu screencastů a online videí. Které nástroje…
V rámci 5 videí najdete 7 krátkých video tipů pro zefektivnění práce s Google Analytics…