Visualizzazione risultati 1 fino 9 di 9

Discussione: Web Scraping in PHP

  1. #1
    Guest

    Predefinito Web Scraping in PHP

    Salve sto cercando si usare questa tecnica per inserire anche il modulo google nella mia pagina web ma usando questo codice:
    Codice PHP:
    <?php
    $uri
    = 'http://www.crimnet.dcpc.interno.gov.it/servpub/ver2/SCAR/cerca_targhe.asp';

    $get = file_get_contents($uri);

    $pos1 = strpos($get, "<form");
    //identifico la prima occorrenza di apertura del tag form

    $pos2 = strpos($get, "</form>", $pos1);
    //identifico la prima occorrenza di chiusura del tag form a partire da pos1

    $text = substr($get,$pos1,$pos2-$pos1+7);
    //estraggo il codice html ivi contenuto
    //+7 per acquisire anche il tag </form>

    echo $text; // visualizzo il codice html
    ?>
    la ricerca non funziona sapete perchè?

    grazie
    Ultima modifica di alemoppo : 12-10-2016 alle ore 15.32.26 Motivo: +tag [php]

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Perchè il tuo editor inserisce &nbsp; (mi riferisco alla notazione nome d'entità poiche é un carattere spazio di non interruzione) nel sorgente php poiché php legge ogni singolo byte questo si traduce in stringhe non racchiuse da apici (cioé un errore)
    Ecco il codice privo di quei tre &nbsp; dovresti cambiare in forma assoluta il valore di action.
    Codice PHP:
    <?php
    $uri
    = 'http://www.crimnet.dcpc.interno.gov.it/servpub/ver2/SCAR/cerca_targhe.asp';

    $get = file_get_contents($uri);

    $pos1 = strpos($get, "<form");
    //identifico la prima occorrenza di apertura del tag form

    $pos2 = strpos($get, "</form>", $pos1);
    //identifico la prima occorrenza di chiusura del tag form a partire da pos1

    $text = substr($get,$pos1,$pos2-$pos1+7);
    //estraggo il codice html ivi contenuto
    //+7 per acquisire anche il tag </form>

    echo $text; // visualizzo il codice html
    ?>

  3. #3
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Qualunque cosa tu stia cercando di fare, non è web scraping.
    Stai semplicemente copiando e mostrando una porzione di pagina web.

    la ricerca non funziona sapete perchè?
    Suppongo tu intenda dire che il form incorporato dall'altra pagina web non produce gli stessi risultati dello stesso form nel sito originale.
    Il motivo principale è che il form copiato punta ad una pagina ricerca_targa.asp che non è presente nel tuo spazio web.

    Se vuoi realizzare veramente web scaping, il procedimento è grossomodo:
    1. crea una funzione PHP che, forniti numero di targa e telaio, invii una richiesta GET verso la pagina http://www.crimnet.dcpc.interno.gov....erca_targa.asp
    2. la suddetta richiesta HTTP GET deve specificare i parametri NumeroTarga1 e NumeroTelaio1 (il cui significato è ovvio), ed il parametro transport, come si può evincere dal sorgente della pagina originale, il cui significato non è documentato
    3. al termine della richiesta, la funzione effettuerà il parsing della pagina HTML ricevuta in risposta, ne estrarrà le informazioni rilevanti e le restituirà o mostrerà

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    mznanella non funziona perche il parser da errore..

  5. #5
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Quale parser?

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    copia il suo codice é lo scoprirai.. ps. ho anche spiegato che ci sta &nbsp;

  7. #7
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    copia il suo codice é lo scoprirai.. ps. ho anche spiegato che ci sta &nbsp;
    Copiato, incollato, eseguito.
    La presenza di non breaking space nel sorgente non rappresenta un problema, il lexer (non il parser!) li ignora, a differenza di Python. Se sono invece presenti all'interno di una stringa, vengono semplicemente trattati come tutti gli altri caratteri senza complicazioni.

    Piuttosto, un altro "problema" che mi era sfuggito è che su AlterVista gli url wrapper sono disabilitati. Per questo motivo il form non viene copiato. L'alternativa sarebbe usare cURL o fsockopen ed aggiungere il server di destinazione nella whitelist (aprire file di un altro sito).

  8. #8
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    che stai a dire??? guarda che il suo codice produce un errore qui su altervista perchè a abilitato in automatico error_reporting o qualcosa del genere .. (mentre nel mio recupero il contenuto del form).
    quindi secondo te
    Codice PHP:
    <?php
    codice senza virgolette non provoca errori
    ?>
    comunque aggiungi prima di qualsiasi cosa
    Codice PHP:
    <?php
    error_reporting
    (E_ALL | E_NOTICE | E_STRICT | E_DEPRECADED);
    ini_set("display_errors" , "stdout");
    ini_set("display_startup_errors" , 1);
    ?>
    Ultima modifica di darbula : 06-10-2016 alle ore 17.08.34

  9. #9
    Guest

    Predefinito

    Ho studiato questi giorni il problema è proprio che la pagina web non produce gli stessi risultati dello stesso form nel sito originale.

    Il problema secondo me è proprio il parametro trasport che cambia in random e lo riceve ogni volta che premi il tasto RICERCA.
    Come posso inserire questa pagina nel mio sito web?
    Grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •