2012-06-23 12 views
5

Estoy tratando de raspar el contenido del un sitio con entrada asegurada pero incapaz de hacerlo inicio de sesión del sitio tiene tres opciones de nombre de usuario, contraseña, clave de acceso aquí está el código que estoy utilizandoRaspe un contenido de sitio con un Ingreso Seguro

<?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

i trató este código con los cambios aceptados en la respuesta, pero este código no está funcionando para mí, estoy usando los datos de mi cuenta de vendedor de Amazon pero nada está sucediendo, ¿me puede guiar algo ya que soy nuevo en PHP. –

Respuesta

7

que tiene que hacer un POST a http://aftabcurrency.com/login_script.php sus necesidades de enrollamiento también para aceptar cookies.
Después de la autenticación, el script lo redireccionará, por lo que también debe agregar CURLOPT_FOLLOWACTION.

aquí es una versión editada de su guión, no puedo probarlo en http://aftabcurrency.com/ espero que funcione:

$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

Código editado ¿Es esta la forma correcta de publicar cookies? – user1447187

+0

aquí edité tu código, en tu parte de cookie estableciste una variable incorrecta ($ curl y no $ ch) - y también agregué CURLOPT_FOLLOWACTION para que el script pueda redirigirte después de iniciar sesión. – MilMike

+0

Gracias funciona ¿Qué sucede si quiero borrar un "texto" en particular de esa página por ejemplo en http://aftabcurrency.com/ Solo deseo desechar solo "¡Nuestros servicios son importantes!" (este texto cambia todos los días) any Idea? – user1447187

0

usted necesita para enviar su nombre de usuario/contraseña/código de acceso a esa página. Lo que estás tratando de hacer ahora mismo es la autenticación http. Así que en lugar de esta

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

necesita esta

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

Hecho pero ahora se muestra una. página en blanco – user1447187

Cuestiones relacionadas