Tìm kiếm

View Full Version: Hướng dẫn làm tool leech bằng curl

Post by: admin
(06.05.2020 / 07:06)
Cỡ chữ +A | =A | -A

hàm get ảnh:

<?php
function img($url){
$curl curl_init($url);
curl_setopt ($curlCURLOPT_RETURNTRANSFER1);
curl_setopt ($curlCURLOPT_BINARYTRANSFER1);
$datacurl_exec ($curl);
curl_close ($curl);
return 
$data;$f preg_replace ('#<img(.+?)src=\"(.+?)\"(.+?)>#i','

}
?>

hàm get html:
<?php
function grab($url){
$curl curl_init();
curl_setopt ($curlCURLOPT_URL$url);
curl_setopt ($curlCURLOPT_USERAGENT"Mozilla/17.0");;
curl_setopt ($curlCURLOPT_RETURNTRANSFER1);
$datacurl_exec ($curl);
curl_close ($curl);
return 
$data;
}
?>

giờ ta đã có 2 hàm quan trọng rồi, bây giờ việc cần làm là áp dụng nó để phục vụ ae ta đá lông nheo
đối với hàm get ảnh bạn dùng như sau:
<?php
//khai báo hàm đã
function img($url){
$curl curl_init($url);
curl_setopt ($curlCURLOPT_RETURNTRANSFER1);
curl_setopt ($curlCURLOPT_BINARYTRANSFER1);
$datacurl_exec ($curl);
curl_close ($curl);
return 
$data;
}
//nếu bạn muốn leech 1 bức ảnh nào đó để xem luôn
header ('Content-type: images/jpeg');//lệnh header báo cho trình duyệt sẽ nhận ảnh với định dạng jpeg
$buc_anh img ('link ảnh');
print (
$buc_anh);
?>

<?php
//khai báo hàm đã
function img($url){
$curl curl_init($url);
curl_setopt ($curlCURLOPT_RETURNTRANSFER1);
curl_setopt ($curlCURLOPT_BINARYTRANSFER1);
$datacurl_exec ($curl);
curl_close ($curl);
return 
$data;
}
//nếu bạn muốn leech và lưu vào thư mục nào đó, chẳng hạn images
$url 'link ảnh';
$buc_anh img (url);
@
mkdir('images',0777);
$op fopen ('images/' basename ($url),'wb');//mở một file với tên của bức ảnh trong thư mục images
fwrite ($op,$buc_anh);//chép nội dung bức ảnh vào file được mở ở trên
fclose ($buc_anh);// đóng file lại
echo '<img src="images/' basename ($url) . '">';//xuất bức ảnh để xem
?>


ok, cơ bản là thế,
đến lượt thằng kia
thằng này đơn giản là nó lấy về source html của wap/web
thôi nói nhanh cho nó vuông là
<?php
//khai báo hàm đã
function grab($url){
$curl curl_init();
curl_setopt ($curlCURLOPT_URL$url);
curl_setopt ($curlCURLOPT_USERAGENT"Mozilla/17.0");;
curl_setopt ($curlCURLOPT_RETURNTRANSFER1);
$datacurl_exec ($curl);
curl_close ($curl);
return 
$data;
}
$link 'link trang muốn xem';
$html $grab ($link);
//thích xem không? có à, đây nè
echo $html;
?>

điều khác nhau cơ bản của 2 hàm trên là lệnh
[bg=#f82e00]curl_setopt ($curl, CURLOPT_BINARYTRANSFER, 1);[/bg]
lệnh này thông báo cho curl biết rằng dữ liệu lấy về là binary, dễ hiểu là nó không phải dạng text, dạng text là những thứ như txt, css, html, xml, xhtml .....
ok, chỉ cần biết thế thôi, nói nữa lại lù tù mù mất Cười lăn lộn
bây giờ mình sẽ lấy 1 tool mình viết sẵn ra để phân tích cho anh em nhá đá lông nheo, đây là tool leech của kenh14.vn chuyên mục góc trái tim(cái này mới làm có người hỏi nên nói luôn);


dĩ nhiên là vẫn có 2 hàm trên nhé, sau đây mình thêm một số hàm cần thiết cho việc xử lý nội dung, mình sẻ cố gắng nói kĩ từng hàm cho ae :)
khi xem 1 link bài viết chẳng hạn
http://kenh14.vn/goc-trai-tim/vi-em-nhu-the-day-201354215645186.chn

mình view source nó lên và xem xét thấy có cái này

<?php
<h2 class="sapo">
Vì em không dịu dàngnữ tính nên ở bên emanh không có được cảm giác che chở cho người mình yêu thương..

</
h2>
?>

nó là câu nhấn màu đậm trên bài viết ấy, nó là một phần của bài viết nên mình sẽ tách câu ấy ra bằng hàm sau
<?php
$link 
'http://kenh14.vn/goc-trai-tim/vi-em-nhu-the-day-201354215645186.chn';
$data grab ($link);
//hàm lấy câu nhấn trên một bài viết
function get_h2 ($data){
//biến $data là biến nguồn đưa vào có được bằng cách dùng hàm grab nhu trên
//trong biến này là mã html của trang ấy
preg_match_all('#<h2\sclass=\"sapo\">(.+?)</h2>#is',$data,$h2);// đây là câu regex thuần thúy
//ý nghĩa: tìm trong biến $data tất cả những cụm từ nằm giữa <h2\sclass=\"sapo\"> và</h2>
//rồi lưu vào biến $h2
//lúc này $h2 nó là một biến mảng 2 chiều với giá trị mình cần lấy nằm ở mảng $h2[1] phần tử có
//khóa là 0 tức là chuỗi nhấn nằm trong biến $h2[1][0]
//mình trả lại giá trị chuỗi vào hàm để tí còn lấy :)
return($h2[1][0]);
}
}
?>

xong, phù, mình viết văn kém nên mong ae ráng vậy
<?php
// đay là hàm lấy nội dung chính bài viết
//vẫn giống trên thôi mình tìm được nội dung nó nằm trong đoạn từ <div\sclass=\"content\">
//đến <script nên mình làm một đoạn regex giống hệt cau truc bên trên chỉ thay mỗi 2 ddiiemr bắt đàu
//đến kết thúc
function get_div ($data){
preg_match_all('#<div\sclass=\"content\">(.+?)<script#is',$data,$div);
//chú ý ở đây mình dùng hàm trim() , thực ra không dùng củng chẳng sao :))
return trim($div[0][0],'\n\r');
}
}
?>

đến hàm này
<?php
function get_h1 ($data){
//nhiệm vụ của nó là lấy tiêu đề bài viết, cấu trúc hoàn toàn giống 2 thằng trên
preg_match_all('#<h1\sclass=\"title\">(.+?)</h1>#is',$data,$h1);
return(
$h1[1][0]);
}
?>

vậy là mình đả lấy thành công nội dung rồi ha, vấn đề là bây giờ sẻ lấy danh sách các link bài viết trên một trang như thế nào, giả sử ở link http://kenh14.vn/goc-trai-tim/trang-3.chn

mình lại viewsource nó và

1 2 »


5 Chủ đề khác cùng chuyên mục
  1. 3 Cách Chống DDOS Cho Trang Web Của Bạn
5 Chủ đề ngẫu nhiên
  1. Share game đế chế online cho forum JohnCMS 11 lượt xem
  2. Tổng hợp mod cho JohnCMS 4.x.x 77 lượt xem
  3. Share mod Album Ảnh ra home cho JohnCMS 22 lượt xem
  4. Share mod show bài viết của chuyên mục by doduong 18 lượt xem
  5. Mod tiền tố cho JohnCMS 18 lượt xem
Textlink: Blog Công Nghệ