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 12-11-2010, 11:52   #1
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
Estrazione dati da sito web - linguaggio

Ciao a tutti, ho bisogno di estrarre una serie di dati da un sito web ed eventualmente trasferirli in un file o in excel e vorrei un consiglio sul linguaggio di programmazione dal quale partire.
In secondo luogo leggendo altri thread qua e là ho visto che vi sono dei problemi se la pagina in questione è dinamica, potetreste darmi delle delucidazioni a ruguardo?

Grazie anticipatamente, Andrea.
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2010, 14:59   #2
codcata
Member
 
Iscritto dal: Jun 2008
Città: Torino
Messaggi: 118
puoi risolvere il tuo problema con un parse html se il sito e' scritto in html. puoi usare python, php, java, dipende da cosa conosci. parserizzare l'html e' una porta a rompimenti di balls enormi, questo se il tuo sito non offre i dati in json o xml.
per il fatto del sito dinamico non ci dovrebbero essere problemi. ovviamenti avrai dati diversi in base al istante in cui raccogli i dati dal sito.
codcata è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2010, 17:40   #3
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
ok, grazie per la risposta! se lo scrivo in php poi basta che apro il file .php che creo e da lì posso per esempio creare un bottone che una volta schiacciato esegue quello che devo fare giusto?
Hai invece qualche funzione da consigliarmi per questo scopo?
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 12:47   #4
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
sarebbe forse sensato chiederti che esperienza di programmazione hai

lo scraping non è certo qualcosa di banale e non è raro dover modificare il parser per ottenere buoni risultati

io ho sempre usato python + beautifulsoup che imho è il sistema più robusto per effettuare lo scraping di contenuti dal codice html
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 12:57   #5
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
bè diciamo che di php ho una buobna conoscenza, l'ho usato per l'università per qualche same con apache e mysql... di python invece non so niente...
Usando php sapreste dirmi quindi da dove partire? Se è necessario usare qualche altro linguaggio o qualche funzione specifica?

Grazie
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 13:25   #6
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
il problema è che in php lo scraper te lo devi creare tu, mentre con python c'è già beautifulsoup che implementa il 99.99% di quello che ti serve

il discorso scraping è molto complesso, nel senso che non tutti i siti là fuori usano html scritto correttamente, moltissimi sono scritti male, con errori, omissioni, ecc....

un buon parser html implementa una serie di logiche euristiche che ti permettono di correggere il codice al volo e quindi di bypassare gli errori che i coder html mettono nei loro siti

in php sei praticamente da solo, in python hai beautifulsoup

chiaramente se devi fare il parsing di un singolo sito, allora ti vai a guardare il codice html e vedi se e dove ci sono errori e quindi riesci bene o male a creare un parser che funziona, ma se vuoi un parser per leggere vari siti html di cui non puoi ovviamente annotare tutti i difetti, devi appoggiarti a qualcosa di robusto

in teoria i migliori parser in assoluto sono quelli dei browser, tra cui quello di firefox è uno dei migliori.....ovviamente puoi interfacciarti con firefox, preferibilmente da python perchè ci sono dei wrapper appositi, oppure puoi interfacciarti a webkit, o se vuoi farla semplice usi beautifulsoup
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 16:09   #7
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da Gimmy2 Guarda i messaggi
bè diciamo che di php ho una buobna conoscenza, l'ho usato per l'università per qualche same con apache e mysql
Ma anche no allora.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 16:27   #8
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
Quote:
il problema è che in php lo scraper te lo devi creare tu, mentre con python c'è già beautifulsoup che implementa il 99.99% di quello che ti serve

il discorso scraping è molto complesso, nel senso che non tutti i siti là fuori usano html scritto correttamente, moltissimi sono scritti male, con errori, omissioni, ecc....

un buon parser html implementa una serie di logiche euristiche che ti permettono di correggere il codice al volo e quindi di bypassare gli errori che i coder html mettono nei loro siti

in php sei praticamente da solo, in python hai beautifulsoup

chiaramente se devi fare il parsing di un singolo sito, allora ti vai a guardare il codice html e vedi se e dove ci sono errori e quindi riesci bene o male a creare un parser che funziona, ma se vuoi un parser per leggere vari siti html di cui non puoi ovviamente annotare tutti i difetti, devi appoggiarti a qualcosa di robusto

in teoria i migliori parser in assoluto sono quelli dei browser, tra cui quello di firefox è uno dei migliori.....ovviamente puoi interfacciarti con firefox, preferibilmente da python perchè ci sono dei wrapper appositi, oppure puoi interfacciarti a webkit, o se vuoi farla semplice usi beautifulsoup
Ok grazie, purtroppo di python non so niente, quindi vedo se riesco a fare qualcosa con php. Il sito dal quale preleverei i dati è sempre lo stesso, ho iniziato a vedere qualcosa di scraping, ho visto che c'è una libreria (cURL) che da quanto ho letto è molto utile. Spero che sbattendoci un po la testa riesca a fare qualcosa. Grazie cmq per le info
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 16:35   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
curl permette di scaricare le pagine html, ma ovviamente non indicizza il DOM

del resto in php puoi benissimo usare file_get_contents ( se ovviamente nel php.ini hai abilitato la funzionalità di lettura di file remoti ) e quindi curl ti serve a ben poco

se si tratta sempre dello stesso sito allora puoi creare un banale scraper usando le espressioni regolari
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 20:03   #10
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
cosa vuol dire che non indicizza il DOM?
Più che altro come faccio a selezionare una riga piuttosto che un'altra o dei determinati valori? Ci sono delle funzioni apposite? E' possibile inoltre spostarsi fra le pagine del sito in modo automatico?

Grazie ancora per le risposte.
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 20:44   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Gimmy2 Guarda i messaggi
cosa vuol dire che non indicizza il DOM?.
vedi di qua, oppure la più completa versione in lingua inglese, di la.
Comunque credo che pabloski ti stia suggerendo accedere alla pagina html che ti interessa come ad uno stream dati: puoi (ad esempio, ma non solo, caricarla tutta in memoria e vederla come una unica stringa per poi) darla in pasto ad un matcher di regular expression al quale passerai dei pattern per estrarre i match che ti interessano.

Altrimenti analizzi linea per linea il contenuto per farci quello che ti pare.
__________________

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 : 13-11-2010 alle 20:50.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 20:53   #12
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
ok, ho capito cos'è il DOM, ma il fatto che non lo poassa indicizzare cosa comporta in termini pratici?
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 21:28   #13
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Gimmy2 Guarda i messaggi
ok, ho capito cos'è il DOM, ma il fatto che non lo poassa indicizzare cosa comporta in termini pratici?
mi spiego con un esempio

prendiamo beautifulsoup che è un modulo python che serve proprio a creare il DOM partendo dal codice html....tu gli passi come parametro una stringa che contiene il codice html, lui internamente si crea una struttura di varia complessità che rappresenta il documento

ad esempio <html><body><h1>Ciao Pippo</h1><p>Io sono un cane</p></body></html>

il DOM si presenterà fatto così

html --> body --> h1 --> Ciao Pippo
--> p --> Io sono un cane

in pratica avrai un vettore che chiamiamo S per semplicità e avrai che S[0] contiene il contenuto di <html> e cioè il body e tutti gli elementi al suo interno

S[0][0] sarà un vettore di 2 elementi contenente h1 e p e i loro contenuti

S[0][0][0] sarà Ciao Pippo e S[0][0][1] sarà Io sono un cane

ovviamente il tutto associato a metadati che permettono di capire se il contenuto di un elemento dell'array è un elemento html, una semplice stringa di testo, un elemento cdata, ecc....

questo è il genere di struttura che si chiama DOM, poi ovviamente ogni libreria la gestisci fisicamente a modo suo ma concettualmente il DOM è una struttura contenente il codice html, sezionato in base ai vari tag, dov'è possibile navigare all'interno dei tag e quindi scoprire/leggere gli elementi contenuti all'interno dei vari tag, scendere ancora più sotto, fino ad arrivare agli elementi atomici che sono le stringhe di testo

per fare lo scraping di una pagina html ti serve qualcuno che sia in grado di creare una struttura del genere

in alternativa puoi semplicemente creare un matcher con le espressioni regolari, che però sarà un sistema che brutalmente estrae tutte le stringhe di testo ma non ti dà nessuna informazione riguardo lo status di quelle stringhe ( se erano contenute all'interno di tabelle, div, header, paragrafi, erano bold, em o che altro )

l'approccio basato su espressioni regolari funziona finchè il codice è corretto, ma guai ad avere un codice in cui un tag non si chiude oppure c'è un errore sintattico ( tipo <b al posto di <b> )....in questo caso il matcher comincerà a restituire stringhe di testo con dentro tag html e sarà un guaio grosso quanto una casa

in generale siccome è impossibile creare un parser degno di tale nome in maniera semplice, il mio suggerimento è di appoggiarsi ai parser di webkit o gecko, perchè si tratta di software molto sofisticato, capace di generare il DOM a partire da html malridotto
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 12:17   #14
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
grazie mille per la spiegazione esauriente. Ora provo a vedere se riesco a fare qualcosa in php, magari per quello che devo fare non c'è bisogno di cose troppo complesse, in tal caso invece proverò o con python o come dici tu usando quei parser.

Grazie ancora
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 14:33   #15
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
Scusate il doppio post, sto facendo qualche prova con php, usando funzioni semplici come la file get content. Purtroppo quando uso questa funzione inserendo l'url del sito desiderato ottengo quest'eerore:

[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\xampp\htdocs\prova2.php on line 7

forse è dovuto al fatto che l'url in questione non termina con una pagina .php o .html o che fa uso i script? perchè ho visto che nel sorgente della pagina ve ne sono...
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 15:43   #16
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quel messaggio ti dice semplicemente che il server non è in grado di elaborare la richiesta. Il problema non è dello script ma del server.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 18:53   #17
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
quindi vuol dire che da quel sito non è possibile in nessun modo estrarre dati dal codice sorgente?
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 19:10   #18
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Gimmy2 Guarda i messaggi
quindi vuol dire che da quel sito non è possibile in nessun modo estrarre dati dal codice sorgente?
No questo è oggettivamente impossibile. Semplicemente richiedere quell'url causa un errore. Se accedi allo stesso url dal browser che succede?
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 22:25   #19
Gimmy2
Member
 
L'Avatar di Gimmy2
 
Iscritto dal: Jan 2008
Città: Paderno Dugnano
Messaggi: 116
l'url dal browser funziona, è da lì che l'ho preso. Cosa può essere allora?
__________________
Intel Core Duo E8400 - Asus P5Q - Corsair XMS2 DHX CM2X2048-6400C4DHX- ATI Radeon HD 4850 - Samsung SyncMaster 206BW - Gigabyte GZ-X5 - Corsair 550VXEU - Microsoft Windows 7 Professional
Gimmy2 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 22:50   #20
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Gimmy2 Guarda i messaggi
l'url dal browser funziona, è da lì che l'ho preso. Cosa può essere allora?
Potrebbe essere che analizza l'useragent.
pabloski è 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...
28 astronauti cinesi hanno condotto un'e...
Dal Padiglione Italia al mercato globale...
POCO M8: display AMOLED luminoso, batter...
ECOVACS, tante novità a Las Vegas...
Caso Galaxy Ring difettoso: Samsung chiu...
Targa e assicurazione per monopattini el...
AI Cloud Protect: la soluzione di Check ...
Nuovo spettacolare video del razzo spazi...
Hisense presenta a CES 2026 il display M...
XPeng P7+ è pronta per l'Europa: ...
IKEA nuove lampade Matter annunciate al ...
Il telescopio Hubble potrebbe andare dis...
Hisense introduce RGB MiniLED evo (a qua...
Deumidificatore De'Longhi in offerta su ...
OnePlus 15R: il 'battery phone' pi&ugrav...
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: 20:24.


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