2014-04-20 13 views
6

Quello che sto cercando di fare è creare un bot che acceda a un sito usando il mio account e faccia un po 'di lavoro automaticamente (ovviamente il lavoro legit) .Come fare un bot con PHP per accedere e fare cose su un sito web

Ad esempio, potrebbe esserci un post in un forum con migliaia di commenti separati in centinaia di pagine. Il post può essere visualizzato solo dagli utenti registrati. Vorrei trovare i commenti di un utente specifico lì e voglio un bot PHP per accedere con il mio account, leggere ogni pagina di commento uno per uno ed estrarre i commenti di quell'utente specifico e visualizzarli a me.

Questo era solo un esempio, ovviamente. Posso fare l'estrazione e l'analisi, ma non riesco a fare in modo che il bot effettui il login e passi avanti. Io sono solo un principiante in PHP, ho provato quanto segue:

  1. Usato mia forma di passare dati di post sulla pagina di login del sito, ma non ha funzionato, perché continuava a dire referer valido.

  2. Ho effettuato l'accesso manualmente e ho quindi aperto il mio script in una nuova scheda, ma non ha funzionato e ha chiesto al bot di accedere nuovamente.

Quindi, per favore, puoi darmi un'idea su come farlo? Fondamentalmente ha bisogno di andare alla pagina di login, in qualche modo digitare il nome utente e la password, accedere, andare in una pagina specifica e fare cose.

A proposito, questo può essere fatto anche con JavaScript?

Grazie.

+1

Se si utilizza javascript, quindi si otterrà l'errore di origine incrociato. Quindi non penso che js aiuterà molto. –

risposta

9

È necessario php_curl per l'autenticazione e quindi una volta ottenuta la sessione, è possibile eseguire l'estrazione. Qualcosa del genere:

$host = curl_init($url); 
curl_setopt($host, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders)); 
curl_setopt($host, CURLOPT_HEADER, 1); 
curl_setopt($host, CURLOPT_USERPWD, $username . ":" . $password); 
curl_setopt($host, CURLOPT_TIMEOUT, 30); 
curl_setopt($host, CURLOPT_POST, 1); 
curl_setopt($host, CURLOPT_POSTFIELDS, $payloadName); 
curl_setopt($host, CURLOPT_RETURNTRANSFER, TRUE); 
$return = curl_exec($host); 
curl_close($host); 
+0

Grazie mille. Non so come usare il curl, ma posso iniziare ad imparare. Grazie per la direzione :) – CluelessNoob

Problemi correlati