Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Spider per annunci immobiliari

    Ciao a tutti, devo creare per un mio cliente un sito tipo http://case.trovit.it , anche se di dimensioni ridotte.

    Quindi vorrei iniziare a creare uno spider che estrae ogni singolo annuncio da ogni sito che voglio indicizzare. Dato che ogni sito potrebbe avere un architettura e una struttura diversa nasce il primo problema.

    Voi come iniziereste ?

  2. #2
    Informandomi se il sito che voglio controllare esponga delle API.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Originariamente inviato da alcio74
    Informandomi se il sito che voglio controllare esponga delle API.
    Purtroppo no ... Gran parte dei siti in questione sono di piccole dimensioni e non utilizzano neanche un db, men che meno una struttura con delle API grazie Cmq

    Ho iniziato una piccola analisi logica...

    In genere gran parte dei siti in questione hanno una struttura simile. Ovvero ogni immobile è contenuto in una singola pagina ...

    Es

    www.sitoimmobiliare.com/codiceimmobile.html

    Oppure

    www.sitoimmobiliare.com/immobili.php?id=xxxx

    Quindi dovrei creare uno spider personalizzato per ogni singolo sito, ovviamente gran parte del codice lo potrei utilizzare per tutti i spider evitando di doverlo riscrivere. Magari potrebbe essere la mia occasione per approfondire la programmazione ad oggetti...

    In sintesi lo spider apre la home del sito. Estrae tutti i collegamenti dalla home ed esamina a cascata quali sono relativi ad immobili e quali a fornire altre info es. Pagina di contatto, servizi ecc. Se invece il sito contiene un motore Tramite lo spider invio dei parametri standard di ricerca e faccio lo stesso lavoro della soluzione precedente.

    Ancora meglio se ogni singolo annuncio dovesse avere un id numerico o alfanumerico. In tal caso proverei in automatico ogni singola possibilità incrementando +1.

    Alternativa ... Si potrebbe prendere spunto dai software tipo DownThemAll che scaricano tutti i documenti da un singolo sito. Essi rilevano ogni singola pagina contenuta su un sito mediante dei descrittori batch ( es. myimmobile[1:1000][A:Z]) tuttavia in tal caso non saprei come cominciare e non so se il tutto sarebbe troppo lento o se potrebbe essere interpretato come un attacco al server.

  4. #4
    Guarda, io una volta ho dovuto fare qualcosa di simile su commissione, per un sito di valutazioni su ristoranti, alberghi eccetera.
    Il lavoro è davvero palloso, perché devi prima capire come ragiona il sito, poi fare lo scraping delle informazioni con espressioni regolari eccetera.
    Ricordati sempre che queste pratiche sono al limite della legalità,
    ma utilizzare software altrui quando che scarica completamente un sito, quando poi alla fine te lo puoi fare in casa senza stare a riempire un hard disk di pagine web, penso che sia la soluzione ideale.
    Il procedimento che hai pensato credo sia valido, ma se non vuoi passare per uno scroccone di banda ti consiglio due cose: quando lanci lo spider, cerca di mascherare il tuo IP; utilizza un temporizzatore (con parametro variabile) per le interrogazioni, dimodoché per la stessa lettura una volta ci mette 3 secondi, un'altra 10... e sembra tutto più naturale!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Originariamente inviato da alcio74
    Guarda, io una volta ho dovuto fare qualcosa di simile su commissione, per un sito di valutazioni su ristoranti, alberghi eccetera.
    Il lavoro è davvero palloso, perché devi prima capire come ragiona il sito, poi fare lo scraping delle informazioni con espressioni regolari eccetera.
    Ricordati sempre che queste pratiche sono al limite della legalità,
    ma utilizzare software altrui quando che scarica completamente un sito, quando poi alla fine te lo puoi fare in casa senza stare a riempire un hard disk di pagine web, penso che sia la soluzione ideale.
    Il procedimento che hai pensato credo sia valido, ma se non vuoi passare per uno scroccone di banda ti consiglio due cose: quando lanci lo spider, cerca di mascherare il tuo IP; utilizza un temporizzatore (con parametro variabile) per le interrogazioni, dimodoché per la stessa lettura una volta ci mette 3 secondi, un'altra 10... e sembra tutto più naturale!
    Illegale???? dici? Ma partendo da questo presupposto anche Google a questo punto sarebbe illegale, o sbaglio? Infondo gli farei pubblicità gratis. Al limite potrei mandagli una mail per avvertirle il gestore del sito

  6. #6
    Ho iniziato nel creare lo spider che rileva gli URL presenti in una determinata pagina.

    Quindi ho trovato parte di un codice che fa al caso mio su http://www.orebla.it/forum/viewtopic...art&view=print

    Poi ho sostituito split() con esplode().

    Codice PHP:
    <?
    ini_set
    ('error_reporting'E_ALL);
    ini_set("display_errors"1);

    function 
    get_links($content,$url)  {
            
    $found=array();
            
    $l=0;

            for (
    $i=0$i<count($content); $i++)  {
                    
    $line=explode(" ",$content[$i]);

                    for (
    $j=0$j<count($line); $j++)  {
                            if (
    strstr($line[$j],"<a") && strstr($line[$j+1],"href="))  {
                                    
    $link=explode('"',$line[$j+1]);

                                    if (!
    strstr($link[1],"http://"))  {
                                            
    $fields=explode("/",$url);
                                            
    $root="http:/";

                                            for (
    $k=2$k<count($fields)-1$k++)
                                                    
    $root=$root."/".$fields[$k];

                                            
    $link[1]=$root."/".$link[1];
                                    }

                                    
    $found[$l++]=$link[1];
                            }
                    }
            }

            return 
    $found;
    }

    $url="http://www.miositoimmobliliare.com";
    //$url=$_POST["url"];
    $fp=fopen($url,"r");

    if (
    $fp==null)
            die (
    "Error reading from $url\n");
    fclose($fp);

    $found_1=get_links(file($url),$url);

    print 
    "<h2>Links found inside $url:</h2>\n";
    print 
    "<ul>\n";

    for (
    $i=0$i<count($found_1); $i++)
            print 
    "[*]<a href=\"$found_1[$i]\">$found_1[$i]</a>\n";
    print 
    "[/list]";

    for (
    $i=0$i<count($found_1); $i++)  {
            
    $url=$found_1[$i];
            
    $found_2=get_links(file($url),$url);

            print 
    "<h2>Links found inside $url:</h2>\n";
            print 
    "<ul>\n";

            for (
    $j=0$j<count($found_2); $j++)
                         print 
    "[*]<a href=\"$found_2[$j]\">$found_2[$j]</a>\n";
            print 
    "[/list]";
    }
    ?>
    Purtroppo eseguendo lo script ottengo diversi Warning:

    codice:
    Warning: file(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Applications/MAMP/htdocs/magellano/get_links.php on line 61
    Cosa significa??????

  7. #7
    Originariamente inviato da jr1980
    Illegale???? dici? Ma partendo da questo presupposto anche Google a questo punto sarebbe illegale, o sbaglio?
    Beh.. un conto è fare una indicizzazione di contenuti, un conto è fare incetta dei contenuti stessi per un proprio sito!
    Peraltro, consumando banda dal loro traffico mensile.
    Non voglio dirti che tutti gli scraping sono illegali, ma di solito i siti che vogliono condividere i propri contenuti, mettono a disposizione delle API per farlo in modo trasparente.
    Tutto qui!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Originariamente inviato da jr1980
    codice:
    Warning: file(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Applications/MAMP/htdocs/magellano/get_links.php on line 61
    Cosa significa??????
    Potrebbe essere che il sito è configurato in modo di bloccare le richieste a pagine interne da referral diversi!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.