Kirjoittaja Aihe: Nettisivujen imurointi ja tallennus tekstitiedostoksi, robottiohjelma?  (Luettu 3950 kertaa)

pirttima

  • Käyttäjä
  • Viestejä: 71
    • Profiili
Sattuneesta syystä käyn läpi netistä sivuja ja niiden alasivuja joita sivulla olevan hyperlinkin takaa löytyy. Kopioin ne käsin (CTRL-A ja CRTL-C) ja siirrän tekstin Open Officen teksturiin jatkokäsittelyä ja analysointia varten. Erinomaisen tylsää, aikaavievää ja täysin tietokoneelle itselleen sopivaa hommaa. Varmasti on olemassa ohjelma, joka:

1) Käy läpi antamani internet osoitteen, lukee sieltä tekstin ja tallentaa sen tekstitiedostoksi. En tarvitse kuvia, enkä edes tekstin muotoilua, pelkkä puhdas teksti on se mitä haluan.
2) Haistelee mitä linkkejä löytyy osoittamaltani sivulta eteenpäin ja käy läpi nämä linkit joista myös joka linkin takana olevalta sivulta tallentaa tekstin edellisen tekstitiedoston jatkoksi.
3) edelleen jokaisen löytämänsä linkin takaa tallentaa tekstin ja etsii uudet linkit joiden sisällön ohjelma taas tallentaa ja etsii linkit. jne...
4) Ilmoittaa olevansa valmis kun linkkejä ei enää löydy, tai on käynyt läpi ennalta ilmoittamani määrän linkin linkkejä.

Onko (onhan) olemassa ohjelma tätä varten?
Jos et heti tiedä vastausta, osaatko opastaa minut eteenpäin etsiäkseni ohjelman itse, millähän nimellä tuota ohjelmaa kutsutaan?

snifi

  • Vieras
wget on varmaankin tavallisin ohjelma tuollaiseen. Linkkejä seurataan rekursiivisesti valitsimella -r, jolle voit antaa parametrina rekursiohaun syvyyden. Lisätietoa saat kirjoittamalla komentotulkkiin: man wget
Haettava verkkosivu on hyvä kirjoittaa lainausmerkkeihin, sillä erikoismerkit saattavat saada aikaiseksi erikoisia sivuvaikutuksia. Tiedoston voit tallentaa itse haluamallasi nimellä käyttämällä valitsinta -O.

snifi

  • Vieras
Lisäksi sitten jos wget ei riitä, niin vaihtoehtoisesti voit käyttää tekstipohjaista selainta ja "dumpata" verkkosivun tekstitiedostoon: lynx -dump >tiedosto.html

johon lisänä voit laatia niin sanotun html-parserin esimerkiksi Pythonilla, lisätietoa löydät täältä: http://docs.python.org/library/htmlparser.html (Tässä jälkimmäisessä voin tarvittaessa yrittää etsiä joitakin vanhoja käyttämiäni ohjelmia, mikäli tarvitset lisää apua ohjelmoinnissa.)


tetrao

  • Käyttäjä
  • Viestejä: 177
    • Profiili
Tällä olen itse homman hoitanut. Tuolla valitettavasti saat kaupan päälle kuvatkin  ;)
Koodia: [Valitse]
wget --recursive --convert-links --page-requisites --no-parent http://index.html

Sama lyhyemmin:
Koodia: [Valitse]
wget -rkp -np http://index.html
Arch Linux - A simple, lightweight distribution

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Ylimääräisiä tiedostoja voi suodattaa -R parametrilla, esimerkiksi -R.gif,.js,.css hylkää gif-kuvat ja javascript tiedostot (ei mainoksia) sekä css-tyylitiedostot (turhia jos vain sisältö kiinnostaa).

Toinen usein hyödyllinen on -l parametri (--level), jolla voi rajata kuinka monta tasoa eteenpäin linkkejä seurataan. Jos on tarve ladata vain indexisivulta linkitetyt sivut, -l 2 hoitaa homman eksymättä syvemmälle sivuston sopukoihin.

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Ylimääräisiä tiedostoja voi suodattaa -R parametrilla, esimerkiksi -R.gif,.js,.css hylkää gif-kuvat ja javascript tiedostot (ei mainoksia) sekä css-tyylitiedostot (turhia jos vain sisältö kiinnostaa).
Tuo ei suodata flash-mainoksia.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Joo, mutta tuo olikin vain esimerkki eli voihan siihen lisätä muitakin tiedostotarkenteita maun mukaan (.swf vai mikä se nyt oli)  ;)

Usein javascriptin pois kytkeminen kyllä estää myös flash-jutut. Tosin wget ei aja javascriptiä, joten eipä liene tässä yhteydessä väliä.

pirttima

  • Käyttäjä
  • Viestejä: 71
    • Profiili
Kiitos

Kokeilin nopeasti wgetiä, syvällisemmin en ehtinyt paneutua. Latasi ja tallensi kaikenlaista ylimääräistä roskaa mitä en tarvitse. Pääasiallinen puute ainakin toistaiseksi näyttää olevan kannaltani että tallentaa kaiken mahdollisen omaksi tiedostokseen kun taas minä haluaisin kaiken imuroimani tekstin (enkä mitään ylimääräistä) yhteen ja samaan tiedostoon.

Onnistuuko? Onnistuu tietysti, jollain käskyllä saa tiedostot yhdistettyä, mutta helpommin.