aidiss / opendatagovlt

For open data in Lithuania
2 stars 1 forks source link

Puslapiuose aptinkamos nuorodos į kituose domainuose esančias rinkmenas #17

Open aidiss opened 9 years ago

aidiss commented 9 years ago

Kaip elgtis tokiais atvejais? pvz:

sirex commented 9 years ago

Tą sprendžia duomenų surinkimo robotas (Crawler). Štai pavyzdys iš roboto instrukcijų failo, kur būtent aprašyta, kurias nuorodas lankyti, o kurių ne:

name: opendata.gov.lt
crowler:
  start-urls:
    - http://opendata.gov.lt/index.php?vars=/public/public/search
  download-urls:
    - name: table
      pattern: http://opendata\.gov\.lt/index\.php\?vars=/public/public/search/\d+/
      actions: [follow, download]
    - name: details
      pattern: http://opendata\.gov\.lt/index.php\?vars=/public/public/print/\d+/
      actions: [download]

Čia pavyzdys yra su opendata.gov.lt svetaine. Tačiau principas yra toks, kad pattern lauke yra įrašyta nuorodos regular expression, o action nurodo, ką robotas turi daryti aptikęs tokią nuorodą. Kol kas action laukas turi du variantus: download - atsiųsti nuorodos turinį ir išsaugoti į duomenų saugyklą, follow - analizuoti šio puslapio nuorodas ir pagal tą patį algoritmą spręsti ką daryti su kiekvieną iš aptiktų nuorodų.

aidiss commented 9 years ago
  1. Ar esame tikri, jog nepasitaikys atvejų, kai kitame puslapyje pateikti duomenys bus svarbu?
  2. Svarbiau, galbūt tai, jog ten yra nuorodos, yra svarbi informacija. Gal galime išsaugoti faktą, kad yra nuoroda į duoomenis, saugomus kitame puslapyje?
sirex commented 9 years ago

Pateiktame roboto instrukcijų failo pavyzdyje, download-urls parametras leidžia aprašyti Regex'ą bet kokiam puslapiui.

Pavyzdžiui:

  download-urls:
    - name: data
      pattern: .*
      actions: [follow, download]

Reiškia, kad siųsti absoliučiai visus puslapius.

Žodžiu, yra visiška laisvė aprašyti kas bus siunčiama.