2012-06-23 11 views
5

Sto cercando di raschiare il contenuto del sito con login assicurato ma incapace di farlo login del sito ha tre opzioni nome utente, password, codice di accesso ecco il codice che sto utilizzandoRaschiare un contenuto sito con una Secure Login

<?php 

// HTTP authentication 

$url = "http://aftabcurrency.com/login_script.php"; 

$ch = curl_init();  

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt'; 
$timeout = 30; 
curl_setopt($curl, CURLOPT_TIMEOUT,   10); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_COOKIEJAR,  $cookie); 
curl_setopt($curl, CURLOPT_COOKIEFILE,  $cookie); 

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");    

$result = curl_exec($ch); 

curl_close($ch); 

echo $result; 

?> 
+0

ho provato questo codice con le modifiche accettate nei risposta, ma questo codice non funziona per me, io sto usando i dettagli del mio account venditore amazon ma non sta succedendo nulla, puoi guidarmi come sono nuovo in PHP. –

risposta

7

quello che devi fare un POST a http://aftabcurrency.com/login_script.php vostre esigenze ricciolo anche per accettare i cookie.
Dopo l'autenticazione lo script ti reindirizzerà, quindi è necessario aggiungere anche CURLOPT_FOLLOWACTION.

Ecco una versione modificata dello script, non posso testarlo su http://aftabcurrency.com/ auguro che funziona:

$url = "http://aftabcurrency.com/login_script.php"; 

$ch = curl_init();  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt'; 
$timeout = 30; 

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT,   10); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE,  $cookie); 

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");  

$result = curl_exec($ch); 

/* //OPTIONAL - Redirect to another page after login 
$url = "http://aftabcurrency.com/some_other_page"; 
curl_setopt ($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_URL, $url); 
$result = curl_exec($ch); 
*/ //end OPTIONAL 

curl_close($ch); 
echo $result; 
+0

Codice modificato è questo il modo giusto per pubblicare i cookie? – user1447187

+0

qui ho modificato il tuo codice, nella tua parte del cookie hai impostato una variabile errata ($ curl e non $ ch) - e ho aggiunto anche CURLOPT_FOLLOWACTION in modo che lo script possa reindirizzare l'utente dopo il login. – MilMike

+0

Grazie funziona Cosa succede se voglio raschiare un particolare "testo" da quella pagina per esempio in http://aftabcurrency.com/ Desidero solo scartare solo "I nostri servizi sono importanti!" (questo testo cambia ogni giorno) qualche idea? – user1447187

0

È necessario pubblicare il tuo username/password/codice di accesso a quella pagina. Quello che stai cercando di fare adesso è l'autenticazione http. Così, invece di questo

curl_setopt($ch, CURLOPT_USERPWD, "demo:demopass:demopasscode"); 

avete bisogno di questo

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, "user_name=xxxxx&user_password=xxxxxx&passcode=xxxxx"); 
+0

Fatto ma ora mostra un. pagina vuota – user1447187