Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2012, 14:55   #1
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
[JAVA]parsing di pagine web

Salve, sto scrivendo un progetto java, e avrei bisogno di effettuare il parsing di alcune pagine web, in modo da estrarre dei contenuti (testo in specifici tag div, p ecc..). Come posso realizzarlo in java?

Grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2012, 15:13   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
Salve, sto scrivendo un progetto java, e avrei bisogno di effettuare il parsing di alcune pagine web, in modo da estrarre dei contenuti (testo in specifici tag div, p ecc..). Come posso realizzarlo in java?

Grazie
Ciao, puoi appoggiarti a librerie già esistenti e mature per costruire la tua applicazione. Ad esempio vedi:
- html parser
- jsoup
Queste si smazzano tutta la complessità del parsing al posto tuo e ti sputano la pagina in un formato strutturato (tipicamente un dom) pronto al consumo (elabori quel che ti serve).

Se invece devi fare tutto "a mano" allora la strada è più lunga (molto più lunga) e dipende anche da che cosa devi realizzare di preciso.
Comunque, di base, da un oggetto URL su cui hai aperto una connessione puoi ricavare l'Inputstream associato, ergo puoi acquisire i dati a cui punta l'url (ad esempio la pagina html). Vedi i dati come una stringa di testo, e in qualche modo ne fai il parsing (tipicamente a colpi di magia voodoo con le regex) ed elabori quel che devi elaborare: la complessità dipende da come è fatta la pagina e da quanto e cosa ci devi fare.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 06-02-2012 alle 15:21.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2012, 15:28   #3
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
ti ringrazio, jsoup mi sembra più completo di html parser. Penso che opterò per il primo + eclipse

E se invece volessi inviare dati ad una pagina html?

Faccio un esempio con wikipedia. Dalla mia applicazione voglio cercare una pagina in wikipedia. Allora vorrei inviare una stringa alla pagine di wikipedia e dirgli "cerca questo", e recuperare quello che la pagina mi restituisce facendo poi il parsing e togliendo e/o risistemandola a modo mio. Devo cercare di capire come realizzare una cosa del genere
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread

Ultima modifica di gepeppe : 06-02-2012 alle 15:32.
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2012, 15:55   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
Dalla mia applicazione voglio cercare una pagina in wikipedia. Allora vorrei inviare una stringa alla pagine di wikipedia e dirgli "cerca questo", e recuperare quello che la pagina mi restituisce facendo poi il parsing e togliendo e/o risistemandola a modo mio. Devo cercare di capire come realizzare una cosa del genere
Se l'esempio che hai fatto con Wikipedia non è solo un esempio ma è proprio ciò che vuoi realizzare, allora la prima cosa da fare è chiedersi (per poi scoprire) se quel servizio web (Wikipedia) espone una API.

Fino a 5 minuti fa non ne sapevo niente ma con una piccola ricerca ho appreso che sì, Wikipedia espone un'API (più precisamente è MediaWiki che espone un'API per i servizi che supporta, tra cui Wikipedia).
- link a MediaWiki (pagina di Wikipedia)
- link a MediaWiki API page

Andando a leggersi i termini d'uso e studiandosi l'API in questione sarebbe poi possibile costruire una propria applicazione che si interfaccia con Wikipedia tramite quella API (e dimenticare la facceda dello scraping delle pagine html, che, per quanto interessante di per se, è pur sempre una faccenda sporca, rozza & forse neanche tanto "pulita" dal punto di vista legale [bisogna prima informarsi però]).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 06-02-2012 alle 15:58.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2012, 16:17   #5
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
non avevo pensato di usare le api... ho controllato ed esistono anche per il sito di cui ho bisogno (simile a wikipedia). Magari cosi mi risulta più semplice programmare l'applicazione XD
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2012, 18:35   #6
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Ho notato un piccolo problema. Se ad esempio vedo una pagina web (il risultato di una ricerca) con firebug vedo una cosa (tutte le informazioni di cui ho bisogno), se ne vedo una con "mostra sorgenti pagina" di firefox, ne vedo una meno completa...purtroppo JSOUP da quanto ho visto, vede solo la seconda possibilità!

C'è un modo per risolvere il problema?
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2012, 01:34   #7
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Vuol dire che alcuni elementi della pagina sono stati caricati tramite javascript, forse ajax. Questo è un ottimo motivo per usare le API apposite.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2012, 16:36   #8
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
no, in quest'altro sito non ci sono API disponibili purtroppo. Quindi devo inviare i dati dal programma java verso il form (metodi post e get, dipende) della pagina tot.html, e recuperare la pagina di risposta.
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2012, 11:48   #9
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
Ho notato un piccolo problema. Se ad esempio vedo una pagina web (il risultato di una ricerca) con firebug vedo una cosa (tutte le informazioni di cui ho bisogno), se ne vedo una con "mostra sorgenti pagina" di firefox, ne vedo una meno completa...purtroppo JSOUP da quanto ho visto, vede solo la seconda possibilità!

C'è un modo per risolvere il problema?
Non è che per caso ci sono iframe per cui hai i contenuti sparsi su più pagine?
Un'altra alternativa potrebbe essere quella di integrare un browser vero nel tuo software (WebKit, Firefox).
Ad esempio per Firefox qui c'è un esempio: http://stackoverflow.com/questions/2...-in-java-swing
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 12-02-2012, 14:08   #10
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
non ne ho idea, cmq potete controllare, la pagina di cui parlo è quella di mymovies.it (volevo realizzare un'applicazione personale, per ora, per android...visto che il sito non ha neppure una versione mobile decente)... con altri siti sono riuscito a recuperare i vari tag html tramite jsoup, con questo non ci riesco...

Se effettuo una ricerca, sembra che la "sezione" dei risultati non venga recuperata da jsoup (che invece recupera tutto il resto che ne fa da "contorno")
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2012, 10:14   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
no, in quest'altro sito non ci sono API disponibili purtroppo. Quindi devo inviare i dati dal programma java verso il form (metodi post e get, dipende) della pagina tot.html, e recuperare la pagina di risposta.
In pratica sì.
Occhio però alla questione legale (stai facendo web scraping), sempre che la stessa ti interessi. In questa pagina puoi cominciare a farti un'idea:
http://www.galvanilegal.com/is-web-scraping-legal

La prima cosa che farei, fossi al tuo posto, è vedere se il sito fornisce i "termini d'uso" dello stesso per poi leggerli e verificare che non sia esplicitamente vietato lo scraping dei contenuti (vedi il link per maggiori info).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-02-2012, 11:55   #12
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
grazie, non credevo che non fosse legale, non l'avevo mai vista sotto questo punto di vista. Grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Il nuovo Snapdragon 8 Elite Gen 6 sar&ag...
Nintendo Switch 2: risultati sotto le at...
Weekend con tante sorprese su Amazon: to...
HONOR non si ferma più: il 2025 &...
Speciale best seller: EUREKA J15 Evo Ult...
Roborock Q10 X5+ da 10.000 Pa a 199€ &eg...
E-mail reset password di Instagram: la c...
La NASA ha discusso le problematiche del...
Il razzo spaziale NASA SLS e la capsula ...
Stazione Spaziale Internazionale: Crew-1...
Samsung Galaxy S26 Ultra: la ricarica de...
Apple ha un nuovo partner per la sua App...
Trenitalia introduce il prezzo dinamico ...
OnePlus non si ferma più: c'&egra...
DAZN sconta il piano Full per 6 mesi, se...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v