Visualizzazione risultati 1 fino 12 di 12

Discussione: Domanda su possibile script

  1. #1
    Guest

    Predefinito Domanda su possibile script

    Salve a tutti, apro questo thread per farvi una domanda semplice:
    sarebbe possibile utilizzando fsockopen o cURL prendere i link presenti in una pagina e copiarli in un file .txt? o almeno i numeri che sono alla fine dei link presenti in quella pagina...
    Ho cercato un pò in giro ma non ho trovato niente di che
    Spero di essermi spiegato bene....grazie anticipatamente.

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    È possibile, per recuperare i link puoi usare le espressioni regolari.
    La funzione che dovrai utilizzare sarà: preg_match_all

    Puoi fare una ricerca sulle espressioni regolari, se hai problemi non esitare a chiedere aiuto.

  3. #3
    Guest

    Predefinito

    Ti ringrazio per la risposta ma una cosa che non mi è chiara è come cercare i link dopo essermi connesso al sito:
    per connettermi uso questo script

    Codice PHP:
    <?php
    $fp
    = fsockopen("www.sito.it", 80, $errno, $errstr, 30);
    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    $out = "GET HTTP/1.1\r\n";
    $out .= "Host: www.sito.it\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>
    in pratica ho capito che devo usare quella funzione ma non saprei come modificare lo script di sopra

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Prima di tutto hai bisogno di salvare il sorgente in una variabile e poi applicare l'espressione al sorgente stesso ( scusa ma ti modifico lo script, al posto di fsockopen userò curl ).

    Codice PHP:
    <?php
    $ch
    = curl_init('http://www.sito.it/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $code = curl_exec($ch);
    curl_close($ch);

    preg_match_all('/<a([^>]*)>(.+?)<\/a>/is', $code, $m); // questa regexp è generica, cattura tutti i tag <a>

    $attributi = $m[1];
    $contenuto = $m[2];

    // con un loop ti estrai dato per dato e lo salvi nel file.
    Se spieghi meglio cosa vuoi fare, ti aiuto. ( ti serve solo il link che si trova nell'attibuto href ?? )

  5. #5
    Guest

    Predefinito

    In pratica dovrei crearmi un db su degli oggetti...questi oggetti vengono riconosciuti tramite id numerico che si trova in fondo al link del sito in questione...il problema è che i link si vedono solo in basso a sinistra(nella casella del browser) e solo se ci passi il mouse sopra(in pratica nell'html del sito non ci sono tag href forse perchè li generano con javascript o simili)

    Se mi sono espresso male non mi resta che linkarvi un esempio:
    http://www.wowhead.com/npc=28803

    come vedi in quel link sotto ci sono diversi oggetti e i link che mi interessano si vedono solo se passi il mouse sopra le img, esempio:
    http://www.wowhead.com/item=38551 io dovrei prendere quel 38551 o tutto il link e poi con le espressioni regolari mi ricavo il numero da solo
    Ultima modifica di furion : 09-07-2010 alle ore 17.44.54

  6. #6
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Se i link vengono generati con javascript, non credo che sia possibile recuperarli ( almeno usando solo php, senza appoggiarsi a servizi esterni ).

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da furion Visualizza messaggio
    In pratica dovrei crearmi un db su degli oggetti...questi oggetti vengono riconosciuti tramite id numerico che si trova in fondo al link del sito in questione...il problema è che i link si vedono solo in basso a sinistra(nella casella del browser) e solo se ci passi il mouse sopra(in pratica nell'html del sito non ci sono tag href forse perchè li generano con javascript o simili)

    Se mi sono espresso male non mi resta che linkarvi un esempio:
    http://www.wowhead.com/npc=28803

    come vedi in quel link sotto ci sono diversi oggetti e i link che mi interessano si vedono solo se passi il mouse sopra le img, esempio:
    http://www.wowhead.com/item=38551 io dovrei prendere quel 38551 o tutto il link e poi con le espressioni regolari mi ricavo il numero da solo
    Tutte quelle informazioni sono presenti nel sorgente HTML, sotto forma di oggetto Javascript, ma credo che possa leggerle anche con json.
    Guarda attentamente le righe 139 e successive.

  8. #8
    Guest

    Predefinito

    ho fatto una rapida ricerca per sapere cosa fosse json e non c'ho capito gran che su come usarlo :V

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Prima di tutto, hai letto la voce su Wikipedia?

  10. #10
    Guest

    Predefinito

    sisi avevo letto proprio quello cercando su google :V

  11. #11
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    In php puoi usare semplicemente json_decode, l'importante è che recuperi l'oggetto.

  12. #12
    Guest

    Predefinito

    quindi catturo tutti gli id con le espressioni regolari e poi le passo a json_decode? mi sto intrecciando :S

Regole di scrittura

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