View Full Version : [PHP, ASP, HTML] Uno script per prendere listini da siti e riunirli in una pagina...
Ciao a tutti, avrei la necessità di fare una pagina web con uno script che vada a prendere i dati da altre pagine web su internet e me li raggruppi in una sola pagina... Spiego meglio..
Avevo pensato a qualcosa che andasse sulla pagina con i dati di origine, ne spulciasse il codice html e riconoscesse tramite alcuni parametri i dati da utilizzare ed eventualmente li inserisse poi su un database locale o direttamente in una pagina web..
Ma sinceramente non so bene come partire...
Il funzionamento è simile a quello dei lettori RSS, ma non riesco a capire se il linguaggio XML deve essere utilizzato nel sito di origine dei dati per permettere questo "capture" oppure se viene utilizzato per andarli a catturare...
Qualcuno può illuminarmi sulla strada da seguire?
Thx! ;)
Ciauzz
Roberto
Non è semplice, perché ogni pagina ha il suo formato, quindi devi andarti a spulciare il codice HTML per reperire le informazioni. E ad ogni cambiamento della pagina probabilmente dovrai andare a modificare il tuo codice.
php già di suo permette di andare a prendere pagine web semplicemente passando la url alle funzioni di apertura file, l'unico problema è che molto spesso questa opzione è disabilitata sugli hosting più economici.
Puoi vedere nel riquadro celeste di questo link: http://www.php.net/manual/it/function.file-get-contents.php
Ciao, grazie per la risposta!
Allora, ho fatto 2 prove in locale, ed in effetti son riuscito a tirar fuori il contenuto da vari files .txt, .html, anche immagini .gif (come se le aprissi con wordpad...) e printarlo a schermo tramite questo script:
<?php
// Define a context for HTTP.
$aContext = array(
'http' => array(
'proxy' => 'tcp://127.0.0.1:80', // This needs to be the server and the port of the NTLM Authentication Proxy Server.
'request_fulluri' => True,
),
);
$cxContext = stream_context_create($aContext);
// Now all file stream functions can use this context.
$sFile = file_get_contents("http://www.xxxxx.com/xxxxx-xxxxxx.gif", False, $cxContext);
echo "<pre>".htmlspecialchars($sFile)."</pre>";
?>
Ho provato però con dei files presi da vari siti online, e mi da sempre l'errore:
Warning: file_get_contents(http://www.xxxxx.com/xxxxx-xxxxxx.gif) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in D:\Xamppnew\xampp\htdocs\prova.php on line 14
Non capisco una cosa, ma l'opzione che deve essere abilitata come dici tu, lo deve essere in locale (dove gira lo script php che va a prendere i dati..) o in remoto (dove ci sono i dati..) ?
Per il fatto di spulciare il codice html che forma le pagine da cui prendere i dati non è un gran problema, anche se cambiano i contenuti, la struttura rimane la stessa, quindi una volta che ho tutto il codice html della pagina in una stringa di php con vari algoritmi dovrei riuscire a scovare ed estrarre solo quello che mi interessa, no?
E' un'impresa così ardua si? :(
Ah, a proposito, non esiste un comando PHP come HTMPSPECIALCHARS che faccia però lo stesso lavoro con del codice PHP invece che HTML? Ho visto che basterebbe sostituire il primo < dell'apertura php con < ma non posso farlo sostituire solo al primo in automatico, ma lo farebbe a tutti quelli dentro la stringa.. no?
Thx a lot! ;)
Roberto
L'opzione deve essere abilitata nel php.ini del php dove gira lo script. Comunque il problema non è tanto quando cambiano i contenuti, ma quando cambia la struttura della pagina e su certi siti avviene spesso.
Riguardo alla funzione: devi fare la sostituzione solo della prima occorrenza, giusto ?
http://it.php.net/manual/it/function.strpos.php
e poi fai una sostituzione spezzando la stringa con
http://it.php.net/manual/it/function.substr-replace.php
L'opzione deve essere abilitata nel php.ini del php dove gira lo script. Comunque il problema non è tanto quando cambiano i contenuti, ma quando cambia la struttura della pagina e su certi siti avviene spesso.
Riguardo alla funzione: devi fare la sostituzione solo della prima occorrenza, giusto ?
http://it.php.net/manual/it/function.strpos.php
e poi fai una sostituzione spezzando la stringa con
http://it.php.net/manual/it/function.substr-replace.php
Grazie 1000 per le funzioni, non le avevo prese in considerazione queste due!!
Penso che mi preparerò un po' di funzioni varie per il trattamento di stringhe da utilizzare poi nei vari script.. mi sto apprestando a fare un sito in php, e nun se sa mai! ;)
La cosa dell'acquisizione dati da web invece la volevo realizzare per riunire vari listini di hardware informatico dei miei fornitori in un unico listino excel aggiornato, così quando devo prendere qualcosa non devo perdere 2 ore a confrontare vari siti... Ma a sto punto penso che sia più un'utopia che altro, vero? :rolleyes:
Grazie ancora per la disponibilità cionci! ;)
Non è un'utopia, ma non è una cosa semplice.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.