10/10/2018, 10:21
Lấy nội dung của url từ web ( yêu cầu login )
Mình đang làm tool tự động lấy nội dung của url từ 1 web. Web này yêu cầu đăng nhập nên mình phải làm cái tự động đăng nhập rồi mới lấy nội dung:
Giải thích:
- Biến $url là link mình cần lấy nội dung, bình thường nếu đăng nhập trên web xong và click chuột vào đó, trình duyệt sẽ cho download 1 file bình thường.
- user1 và pass1 là thông tin đăng nhập trên web đó của mình.
Ban đầu thì chương trình chạy OK nhưng gần đây không rõ bị chặn kiểu gì mà không được. Thông tin biến $data lấy về lại là trang yêu cầu đăng nhập ( có nghĩa là code của mình không qua được phần đó ). Mình đã kiểm tra thì tên các text box login không hề thay đổi (username và password).
Các bạn có cao kiến gì không ?
Thanks!
Code:
function get_data($url)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=user1&password=pass1');//Tự động điền vào các text box
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
- Biến $url là link mình cần lấy nội dung, bình thường nếu đăng nhập trên web xong và click chuột vào đó, trình duyệt sẽ cho download 1 file bình thường.
- user1 và pass1 là thông tin đăng nhập trên web đó của mình.
Ban đầu thì chương trình chạy OK nhưng gần đây không rõ bị chặn kiểu gì mà không được. Thông tin biến $data lấy về lại là trang yêu cầu đăng nhập ( có nghĩa là code của mình không qua được phần đó ). Mình đã kiểm tra thì tên các text box login không hề thay đổi (username và password).
Các bạn có cao kiến gì không ?
Thanks!
Bài liên quan





function get_data($url) { $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20100326 Firefox/3.6"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=user1&password=pass1');//Tự động điền vào các text box $data = curl_exec($ch); curl_close($ch); return $data; }nhưng chạy được một lần rùi lần sau nó cứ undefined function curl_init()
thế mới cáu >.< tại sao vậy ?
ngoài dùng curl của thì có thể dùng cái khác nào ko?
dùng file_get_contents có làm được không nhỉ?
với cái link này http://www.dhl.com.vn/publish/vn/en/...rack.high.html
dùng file_get_contents ,lấy trang đó, điền thông tin , ấn submit , ko ra cái gì
có ai giúp được ko?
Thank
To Scripted : Bạn có thể nói cụ thể hơn được không. Hay cách của bạn cũng giống Mr.Triết?
To chameron : dùng file_get_contents có thể lấy nội dung của url nhưng không nhiều tính năng mạnh mẽ như dùng curl
>.< help help
chả hiểu sao luôn
Còn 1 cách khác giải quyết trường hợp này là dùng ocx của IE nhúng vào chương trình bạn và điều khiển nó, tuy nhiên tốc độ chậm hơn nhiều so với phương pháp bạn đang làm.
Theo mình chưa chắc do như bạn nói. Vì bản thân trên browser trước đó mình đã submit rồi, nên sau đó mình chỉ giả như là click chuột vào link cần lấy nội dung thôi...
To chameron : Bro thử với bộ cài php khác xem. Nhớ thay đổi php.ini thì phải restart lại server ( Apache, IIS )