2012-06-23 66 views
5

Tôi đang cố gắng để xóa nội dung của trang web có đăng nhập được bảo vệ nhưng không thể làm điều đó Đăng nhập của trang web có ba tên người dùng, mật khẩu, mật mã đây là mã tôi sử dụngCạo nội dung trang web Với Đăng nhập An toàn

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

tôi đã cố gắng mã này với những thay đổi bạn chấp nhận trong câu trả lời, nhưng mã này không làm việc cho tôi, tôi đang sử dụng chi tiết người bán tài khoản amazon của tôi nhưng không có gì xảy ra, bạn có thể hướng dẫn tôi điều gì đó như tôi mới làm quen với PHP không. –

Trả lời

7

bạn cần làm một POST để http://aftabcurrency.com/login_script.php nhu cầu curl của bạn cũng chấp nhận cookie.
Sau khi xác thực, tập lệnh sẽ chuyển hướng bạn, vì vậy bạn cũng cần phải thêm CURLOPT_FOLLOWACTION.

đây là một phiên bản chỉnh sửa kịch bản của bạn, tôi không thể kiểm tra nó trên http://aftabcurrency.com/ hy vọng nó hoạt động:

$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

Mã đã chỉnh sửa đây có phải là cách đúng để đăng cookie không? – user1447187

+0

ở đây tôi đã chỉnh sửa mã của bạn, trong phần cookie của bạn, bạn đã đặt sai biến ($ curl và không phải $ ch) - và tôi cũng đã thêm CURLOPT_FOLLOWACTION để tập lệnh có thể chuyển hướng bạn sau khi đăng nhập. – MilMike

+0

Cảm ơn nó hoạt động Điều gì xảy ra nếu tôi muốn cạo "văn bản" cụ thể từ trang đó ví dụ: http://aftabcurrency.com/ Tôi chỉ muốn xóa chỉ "Các vấn đề về dịch vụ của chúng tôi!" (văn bản này thay đổi mỗi ngày) bất kỳ ý tưởng nào? – user1447187

0

Bạn cần phải POST Tên đăng nhập/mật khẩu/mật mã đến trang đó. Những gì bạn đang cố gắng làm ngay bây giờ là xác thực http. Vì vậy, thay vì điều này

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

bạn cần điều này

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

Xong nhưng bây giờ nó cho thấy một. Trang trống – user1447187

Các vấn đề liên quan