Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    20

    Interazione con pagine web

    Premessa: non sono proprio un profano di Java e programmazione in generale, ma dato che il mio ultime codice l'ho scritto diversi anni fa sono un po' arrugginito.

    Mi accingo a preparare una tesi per la laurea triennale in Informatica. L'argomento della tesi riguarda un confronto tra le homepage dei vari quotidiani online. Più precisamente il progetto consiste nel valutare e mettere a confronto l'ordine con cui ciascun quotidiano presenta le notizie.

    Il professore che mi farà da relatore mi ha assegnato come primo compito quello di scrivere un semplice programmino in Java che si collega alle homepage di due quotidiani online, ricava dai rispettivi sorgenti il titolo della notizia di maggiore rilievo, confronta i titoli (titolo+titoletto) e chiede all'utente di confermare se le notizie combaciano.

    Vengo al dunque:

    1. Che classe si usa per collegarsi alle pagine web? java.net?
    2. Quali sono i metodi della classe utili al mio scopo? Potreste linkarmi una guida dove è spiegato il funzionamento di tali metodi?
    3. Consigli su come strutturare il progetto? (non ho intenzione di usare la grafica, almeno per il momento)
    4. Quale IDE mi consigliate? Va bene eclipse, considerando che è come se fossi alle prime armi e tra l'altro vedo che gira anche su Linux?

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    riguardo alle prime tre domande, suppongo che la difficoltà della tesi sia appunto quella di trovare un modo per fare quelle cose. Un suggerimento potrebbe essere prendere la pagina, memorizzarla in locale, e parsarla. Ma proprio a grandi linee (mica dobbiamo farti noi la tesi).

    Riguardo all'ultima domanda, eclipse o netbeans vanno bene, ma associa anche l'uso di strumenti per l'esportazione (suppongo che il prof per eseguire non voglia usare il tuo IDE con la tua configurazione). Insomma, associa almeno script ant per la compilazione, in modo da rendere il progetto un minimo esportabile.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    20
    Originariamente inviato da valia
    riguardo alle prime tre domande, suppongo che la difficoltà della tesi sia appunto quella di trovare un modo per fare quelle cose. Un suggerimento potrebbe essere prendere la pagina, memorizzarla in locale, e parsarla. Ma proprio a grandi linee (mica dobbiamo farti noi la tesi).

    Riguardo all'ultima domanda, eclipse o netbeans vanno bene, ma associa anche l'uso di strumenti per l'esportazione (suppongo che il prof per eseguire non voglia usare il tuo IDE con la tua configurazione). Insomma, associa almeno script ant per la compilazione, in modo da rendere il progetto un minimo esportabile.
    Non è che vi sto chiedendo di farmi la tesi. Ora come ora devo solo svolgere un esercizio, per così dire.

    Speravo in una risposta più esauriente alla prima domanda, mi accontenterei anche di un monosillabo... se non è java.net quale dovrei cercare? Almeno potresti indirizzarmi a una pagina dove potermi documentare?
    Non mi sembra di aver chiesto chissà cosa... solo un pacchetto e possibilmente dei metodi che ritenete possano essermi utili.

    Io avevo pensato a qualcosa del tipo: un'interfaccia "quotidiano" e due classi ("repubblica" e "corriere") che estendono quotidiano. Ciascuna delle due classi con le proprie variabili e i metodi che magari riscrivono quelli di quotidiano che sono in comune. Poi dal main creerei i relativi oggetti su cui interagire.
    Può andare?

    Per quanto riguarda l'IDE, credo che scaricherò entrambi per vedere quale si adatta meglio alle mie abitudini.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    alla fine ti ho dato un'idea che se sai mettere in pratica e sai come cercare ti aiuta molto.
    Hai mai provato a fare da riga di comando wget di un url? salvi sul computer locale il contenuto della pagina web.
    Ora non so se c'è anche per windows, su linux lo trovi sicuro.
    Ma quello è un punto di inizio perché ti trovi la pagina web come html che ti parsi come mi pare, se riesci ad implementarlo hai risolto il problema (e l'intera tesi).

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    20
    Originariamente inviato da valia
    alla fine ti ho dato un'idea che se sai mettere in pratica e sai come cercare ti aiuta molto.
    Hai mai provato a fare da riga di comando wget di un url? salvi sul computer locale il contenuto della pagina web.
    Ora non so se c'è anche per windows, su linux lo trovi sicuro.
    Ma quello è un punto di inizio perché ti trovi la pagina web come html che ti parsi come mi pare, se riesci ad implementarlo hai risolto il problema (e l'intera tesi).
    Che debba procurarmi l'html per poi parsarlo era abbastanza scontato, fin qui ci arrivo pure io.

    Sì, wget l'ho usato su Linux. Forse son tardo io che non riesco a capire dove mi dovrebbe condurre questo suggerimento, il sorgente di una pagina me lo so procurare pure manualmente, ma in realtà dovrei farlo fare all'applicazione.
    E quindi cercavo un indizio per arrivare a una libreria di Java che mi consenta di faro questo. Che ti costa ridurmi la ricerca?
    Se non proprio la libreria esatta almeno una caspita di guida, un punto di partenza...

    Ripeto: concettualmente ho presente cosa bisogna fare (e comunque ti ringrazio per avermelo confermato), mi servono solo gli strumenti e non so quali mi convengono.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    il punto è che è la tua tesi e anche se hai chiaro concettualmente cosa fare (che è poca roba) la difficoltà è proprio nell'usare tutto lo stato dell'arte a tuo vantaggio. Va bene discutere l'idea delle applicazioni, ma questo è il secondo result che ho ottenuto mettendo su google wget java

    http://www.devdaily.com/blog/post/ja...hing-like-wget

    come vedi non devi reinventare la ruota a meno che non sia strettamente necessario, ma fermarti a riflettere.

    Anche qui, se non ti avessi dato quell'implementazione, rifletti su cosa ricevi con wget: uno stream di byte, come fai a ricevere stream in rete in java?
    Anche questo è lavoro della tesi, non ti credere che sia solo fare un po di codice che parsa (usando espressioni regolari oltretutto ci vuole poco).

    Poi secondo me al momento ti stai concentrando sui dettagli, perché alla fine tu devi creare qualcosa che data una pagina web la parsi, come ottiene la pagina web non importa. Non hai il core e ti stai concentrando sui dettagli.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    20
    A parte il fatto che attualmente la tesi non ha una vera forma, per il momento mi sto solo preoccupando di sviluppare una primissima parte della tesi, un esercizio che mi è stato assegnato dal professore.

    Non vorrei dare l'idea di essere uno che pretende la pappa pronta, infatti ho tenuto a specificare che avrei gradito giusto un indizio, un modo per restringere il campo di ricerca. Di mio sono abituato a cercare, solo che in questo caso avevo solo un'ipotesi e mi interessava conoscere le alternative.

    Alla fine, mentre tu mi rispondevi, ho comunque cercato informazioni per conto mio e ho trovato una conferma alla mia ipotesi direttamente in una sezione di questo sito.

    Ora, dato il risultato che mi hai gentilmente fornito, presumo che tu fossi a conoscenza del fatto che il pacchetto java.net è proprio ciò che mi serve. Magari sapevi anche che la risposta alla mia domanda stava proprio nelle guide di html.it (o magari non lo sapevi, in tal caso mi scuso).

    Dunque mi chiedo: quando nel mio primo post ho scritto
    1. Che classe si usa per collegarsi alle pagine web? java.net?
    Ti costava tanto scrivere "Sì"? Oppure "Guida di Java: http://..."?

    Invece hai voluto farmi fare un giro strano tramite un'intuizione che alla fin fine porta allo stesso risultato, tra l'altro fornendomi un codice bell'e pronto (contrariamente a quanto detto prima: mica te la dobbiamo fare noi la tesi).

    Già che ci sono, ti sarei grato se tu o qualcun altro mi mostraste delle eventuali alternative, magari una libreria con delle funzionalità simili ma più potenti... ad esempio un mio collega mi ha consigliato di consultare il sito di Apache, qualcosa che ha che fare con "http connect" ma anche in questo caso non sono riuscito a trovare niente.

    Se invece non ne avete idea o pensate che stia chiedendo troppo... come non detto. Grazie comunque per l'aiuto.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Arethel

    Ora, dato il risultato che mi hai gentilmente fornito, presumo che tu fossi a conoscenza del fatto che il pacchetto java.net è proprio ciò che mi serve. Magari sapevi anche che la risposta alla mia domanda stava proprio nelle guide di html.it (o magari non lo sapevi, in
    tal caso mi scuso).
    ti assicuro che non avevo idea di cosa stessi parlando (a livello implementativo), ma ho solo aperto un browser su google e scritto

    wget java

    e il link che ti ho dato è il secondo.

    Originariamente inviato da Arethel

    Dunque mi chiedo: quando nel mio primo post ho scritto

    Ti costava tanto scrivere "Sì"? Oppure "Guida di Java: http://..."?

    Invece hai voluto farmi fare un giro strano tramite un'intuizione che alla fin fine porta allo stesso risultato, tra l'altro fornendomi un codice bell'e pronto (contrariamente a quanto detto prima: mica te la dobbiamo fare noi la tesi).
    ti invito innanzi tutto a riflettere sulle problematiche che hai, su cosa ti serve e alla fine ti ho fatto vedere quel pezzo di codice (e lo puoi dedurre anche tu visto che ti ho detto come l'ho prodotto) per farti capire quanto è semplice trovare quello che serve (se sai cercare).
    Originariamente inviato da Arethel
    Già che ci sono, ti sarei grato se tu o qualcun altro mi mostraste delle eventuali alternative, magari una libreria con delle funzionalità simili ma più potenti... ad esempio un mio collega mi ha consigliato di consultare il sito di Apache, qualcosa che ha che fare con "http connect" ma anche in questo caso non sono riuscito a trovare niente.
    Infine fai conto che quello che ti ho detto io prende una copia locale e te la parsa, mantenendo i permessi di accesso che avresti se navigassi da un qualsiasi browser. Esiste appunto l'alternativa apache, ma non è detto che un sito "accetti" la tua connect (normale). Quindi ti consiglio di porre l'attenzione dopo su come prendi i dati, inizialmente ti interessa ottenere un result anche da copie in locale

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    20
    ti assicuro che non avevo idea di cosa stessi parlando (a livello implementativo), ma ho solo aperto un browser su google e scritto wget java e il link che ti ho dato è il secondo.
    La domanda mi pareva abbastanza chiara, però evidentemente non lo era. Errore mio.

    ti invito innanzi tutto a riflettere sulle problematiche che hai, su cosa ti serve e alla fine ti ho fatto vedere quel pezzo di codice (e lo puoi dedurre anche tu visto che ti ho detto come l'ho prodotto) per farti capire quanto è semplice trovare quello che serve (se sai cercare).
    Onestamente non la trovo così semplice come intuizione, nel senso... per arrivare a capire il pacchetto che mi serve devo pensare a un'istruzione di Linux e immaginare che qualcuno possa averlo riscritto in Java.

    Un conto è cercare "parser html java", dato che parser è una funzione generica, un altro conto è cercare il nome di una funzione che con Java apparentemente c'entra poco. Comunque... lezione appesa.

    Sulle problematiche ci avevo riflettuto, mi mancava appunto il "cosa mi serve", per questo ho aperto sto topic.

    Infine fai conto che quello che ti ho detto io prende una copia locale e te la parsa, mantenendo i permessi di accesso che avresti se navigassi da un qualsiasi browser. Esiste appunto l'alternativa apache, ma non è detto che un sito "accetti" la tua connect (normale). Quindi ti consiglio di porre l'attenzione dopo su come prendi i dati, inizialmente ti interessa ottenere un result anche da copie in locale
    Quindi in pratica dovrei procurarmi manualmente il sorgente, copiarlo nella cartella dell'applicazione, fare le prove del parser, e una volta terminato con quello occuparmi di come connettermi alla pagina per lavorare sulla copia remota?

    Non sono sicuro di essermi spiegato bene

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    devi affrontare un problema alla volta (almeno io di solito faccio così). Cosa mi serve? un programma che faccia il parse delle home page dei quotidiani, aggiornando in tempo reale i result.

    Problematica numero uno: fare il parse (che è il core). Data una pagina html e non te ne frega niente di come la ottieni, dimmi se ci sono cose interessanti. Questa è la funzionalità base.

    Problematica numero due: aggiornare le pagine, uguale prenderle dinamicamente e metterle su una tua cartella temporanea. Come vedi se qualcosa va storto, adesso il problema è come prendi la pagina web visto che sei sicuro di avere un core funzionante. Inoltre in genere le home page, se le tratti come testo, non sono molto grandi, quindi il download è pressoché istantaneo, cancellando alla fine il file (o dopo ogni tot) il tuo programma continua a funzionare. Se lo progetti bene (se usi interfacce anche) alla fine devi cambiare solo il modulo che ti fa effettivamente il lavoro, il tuo programma manco si accorge del cambio.

    Problematica numero tre: parse remoto, magari vedi se puoi usare stream per parsare in tempo reale il contenuto che vedi, ma ovviamente sono solo idee.

    Problematica numero quattro: gestione degli aggiornamenti, temporizzazione.

    Come vedi ogni problematica suppone che la precedente sia funzionante, introduce una sola fonte di errore (per essere meglio gestibile).
    CI sono altri flussi di programmazione, ma io questo lo trovo migliore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.