Lekce 2.3

Datové formáty a scraping

Struktura JSON, XML a CSV a k čemu se který hodí, úskalí CSV, co je scraping a čím se liší od práce s API.

Shrnutí

Když data opouštějí databázi, zapíšou se do souboru v domluveném formátu. JSON, XML i CSV jsou prostý text, který přečte člověk i program, ale každý unese něco jiného. Data, která nikdo v takovém formátu nenabízí, se dají vytáhnout ze stránky scrapingem.

Formát Struktura Typické využití Na co pozor
JSON objekty {} s dvojicemi klíč a hodnota, pole [], zanořování; rozlišuje text, číslo, true/false a null webová API, konfigurační soubory, výměna dat mezi aplikacemi jen dvojité uvozovky, žádná čárka za posledním prvkem, žádné komentáře
XML elementy s otevírací a zavírací značkou, atributy, právě jeden kořen; všechno je text dokumenty (.docx, .xlsx), RSS, SVG, faktury, úřady a banky, ověřování podle schématu značky se nekříží a musí se zavřít, velikost písmen, & a < v textu; delší zápis
CSV řádek je záznam, hodnoty dělí oddělovač, první řádek bývá hlavička; bez zanoření a bez typů export z tabulek a databází, předávání tabulek mezi programy oddělovač, desetinná čárka, uvozovky, víceřádkové hodnoty, kódování
  • Scraper si stáhne stránku určenou lidem a data najde podle tagu, třídy a id. Třída se opakuje, id je na stránce jen jednou. Selektory se dají skládat, třeba #rates .buy.
  • Stránka se může kdykoli změnit a scraper se rozbije, API má stálou strukturu. Před scrapingem se proto vyplatí hledat API nebo export a přečíst si robots.txt a podmínky užití webu.

Umím?

  • Popíšu strukturu JSON, XML a CSV na příkladu a řeknu, k čemu se který formát používá.
  • Najdu a opravím chybu v zápisu JSON i XML.
  • Převedu data z JSON do XML a rozhodnu, co bude element a co atribut.
  • Porovnám JSON a XML z hlediska čitelnosti, velikosti, datových typů a využití.
  • Vysvětlím úskalí CSV: oddělovače, desetinnou čárku, escapování, víceřádkové hodnoty a kódování.
  • Vysvětlím, co je scraping, k čemu se používá a čím se liší od práce s API.
  • Najdu ve vývojářských nástrojích elementy s daty a zapíšu pro ně selektor podle tagu, třídy a id.
  • Vytáhnu data ze stránky doplňkem Web Scraper, i přes víc stránek a s detaily položek, a uložím je jako CSV.
  • Vím, co říká robots.txt a na jaká pravidla dát při scrapingu pozor.