• User Attivo

    [PHP] Non esegue il parsing su un dato sito e negli altri si...

    Salve,
    mi si verifica una cosa insolita, sto facendo il parsing di una pagina online tramite questo script:

    [PHP]require_once 'simple_html_dom.php';
    $html = file_get_html('https: // www olx ro');
    foreach($html->find('div') as $element) echo $element->innertext . '<br>';[/PHP]

    Mi restituisce questo errore:

    Il nostro sistema ha rilevato un problemaL'indirizzo IP che si utilizza sembra essere associato a una fonte di traffico a traffico limitato.
    È anche una buona idea per una passeggiata di 10 minuti. È un problema persistente, contact-nos:
    Providencia no formulário a seguinte referenência
    OLX: 18.85b3f748.1533721154.4400f950
    

    Se invece di "olx ro" inserisco "subito it" oppure "paginegialle it" o altri, funzionano!!

    Cosa ha OLX che impedisce di fare il parsing??

    Grazie molte.


  • Moderatore

    Le soluzioni sono varie, inizierei con queste:

    • l'ip dal quale ti colleghi è bloccato (il tuo server per intenderci, o in locale)
    • hanno un sistema che controlla gli header della richiesta, e a quel punto ti consiglierei una CURL ben impostata

  • User Attivo

    @massimux said:

    Le soluzioni sono varie, inizierei con queste:

    • l'ip dal quale ti colleghi è bloccato (il tuo server per intenderci, o in locale)
    • hanno un sistema che controlla gli header della richiesta, e a quel punto ti consiglierei una CURL ben impostata

    Conosco abbastanza bene cURL, per ben impostata cosa intendi, quali sono le opzioni da utilizzare all'interno del cURL?


  • Moderatore

    beh simulerei la navigazione da parte di un browser, quindi userei gli header ad hoc.

    es.
    [PHP]

    $User_Agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';

    $request_headers = array();
    $request_headers[] = 'User-Agent: '. $User_Agent;
    $request_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8';
    [/PHP]


  • User Attivo

    Perfetto,
    ti ringrazio molto, tra qualche giorno lo provo e ti faccio sapere.

    Ciao!