Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ
Trang Chủ Giới Thiệu Chương Trình Học Tài Liệu Lịch Khai Giảng Học Phí Việc Làm Lộ trình học

Go Back   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ > WEB - ĐỒ HỌA - LẬP TRÌNH > Web Development > PHP
Đăng Ký Thành Viên Thành Viên Lịch Ðánh Dấu Ðã Ðọc


Vui lòng gõ từ khóa liên quan đến vấn đề bạn quan tâm vào khung dưới , trước khi đặt câu hỏi mới.


Trả lời
 
Ðiều Chỉnh
  #1  
Old 10-01-2011, 15:35
tranvu-nn's Avatar
tranvu-nn tranvu-nn vẫn chưa có mặt trong diễn đàn
Moderator
 
Tham gia ngày: Aug 2010
Tuổi: 33
Bài gởi: 763
Thanks: 49
Thanked 490 Times in 215 Posts
HOT!! Tự động cập nhật tin từ trang dantri.com vào CSDL của trang web

Bài lap sẽ hướng dẫn các bạn cách lấy tin tự động từ dantri.com

LiveDemo: http://vu.nhatnghe.vn/php03/admin/duyet_tinmoi.php

user:teo pass :1

Ở đây là trang duyệt tin sau khi mình đã lấy tin về,còn đây là trang dùng để lấy tin

Livedemo: http://vu.nhatnghe.vn/php03/dantri_xemtin.php

Cơ chế của việc lấy tin là các bạn chỉ cần xác định được các class chứa nội dung tin
vd


Đề nghị: PC nên cài đặt trình duyệt CHROME ,khi muốn xác định CSS đối tượng nào ,thì chỉ cần click phải chọn INspect Element

Soure cài đặt :http://vu.nhatnghe.vn/php03/php03.rar

Bài lab hướng dẫn bạn cách dò và lấy các tin từ các tờ báo với sự hỗ trợ của thư viện PHP Simple HTML DOM Parser



Sau khi downsource về các bạn tạo site động trỏ về folder php03 mới vừa giải nén(C://appserv/www/..) và import CSDL với tên là php03
1)Tạo file mới tên là laytin.php,xóa hết code và paste vào đoạn code sau

PHP Code:
<?php
require "dbcon.php";
include 
"simplehtmldom/simple_html_dom.php";
function 
LuuTinVaoDB($tin$url$source){
    
$tieude trim(mysql_real_escape_string(strip_tags($tin['tieude'])));
    
$tomtat trim(mysql_real_escape_string(strip_tags($tin['tomtat'])));
    
$content trim(mysql_real_escape_string($tin['content']));

$sql "SELECT idTin from tinmoi where urlGoc='{$url}'";
    
$rs mysql_query($sql) or die (mysql_error());
    if (
mysql_num_rows($rs) >) return false;

    
$sql="INSERT INTO tinmoi (TieuDe,TomTat, Content, urlGoc, Source, Ngay)
        VALUES ('
$tieude','$tomtat', '$content', '$url', '$source', Now())";
    
mysql_query($sql) or die (mysql_error());
    return 
true;
}

function 
Dantri_TrangChu($url) {
    
$linkarray=array();
    
$html file_get_html($url);
    foreach (
$html->find(".fon1 mt2") as $link){            
        if (
$link->href==NULL)  continue;
        if (
$link->plaintext==NULL) continue;
        
$text=str_replace("&nbsp;"," ",$link->plaintext);
        
$text=trim($text);        
        if (
$text=="") continue;
        if (
substr($link->href,0,1)=="/"$link->href=$url$link->href;
        if (
in_array($link->href,$linkarray)==false$linkarray[$text]=$link->href;
    }
    foreach (
$html->find(".fon6") as $link){            
        if (
$link->href==NULL)  continue;
        if (
$link->plaintext==NULL) continue;
        
$text=str_replace("&nbsp;"," ",$link->plaintext);
        
$text=trim($text);        
        if (
$text=="") continue;
        if (
substr($link->href,0,1)=="/"$link->href=$url$link->href;
        if (
in_array($link->href,$linkarray)==false$linkarray[$text]=$link->href;
    }
    
    
        foreach (
$html->find(".ul1 li a") as $link){            
        if (
$link->href==NULL)  continue;
        if (
$link->plaintext==NULL) continue;
        
$text=str_replace("&nbsp;"," ",$link->plaintext);
        
$text=trim($text);        
        if (
$text=="") continue;
        if (
substr($link->href,0,1)=="/"$link->href=$url$link->href;
        if (
in_array($link->href,$linkarray)==false$linkarray[$text]=$link->href;
    }
        foreach (
$html->find(".fon4") as $link){            
        if (
$link->href==NULL)  continue;
        if (
$link->plaintext==NULL) continue;
        
$text=str_replace("&nbsp;"," ",$link->plaintext);
        
$text=trim($text);        
        if (
$text=="") continue;
        if (
substr($link->href,0,1)=="/"$link->href=$url$link->href;
        if (
in_array($link->href,$linkarray)==false$linkarray[$text]=$link->href;
    }
    
$html->clear();
    unset(
$html);
    return 
$linkarray;
}
function 
Dantri_Lay1Tin($urlwebsite,$url) {
    
$html file_get_html($url);
    
$tin = array();
    
$td $html->find('div.fon31',0);
    
$tin['tieude']=$td->innertext;
    
$td->outertext='';
    
$tt $html->find('div.fon33',0);
    
$tin['tomtat']=$tt->innertext;
    
$tt->outertext '';
    
$content $html->find('div.fon34',0);        
    
    foreach( 
$content->find('img') as $img) {        
        if (
substr($img->src,0,1) == "/"
        
$img->src $urlwebsite.$img->src;
    }
    
$tin['content'] = $content->innertext;
    
$html->clear();
    unset(
$html);
    return 
$tin;
}
?>
2)Tạo file dantri_xemtin.php để duyệt,trong thẻ bodt paste vào đoạn code sau

PHP Code:
<?php
set_time_limit
(0); 
include (
"laytin.php");
$urlwebsite="http://dantri.com.vn";
$links=DanTri_TrangChu($urlwebsite);
foreach (
$links as $td => $url){
$tin=DanTri_Lay1Tin($urlwebsite,$url);
echo 
$tin['tieude'],"<br>";
echo 
$tin['tomtat'],"<br>";
echo 
$tin['content']; 
echo 
"<hr>";
   
flush();
   
LuuTinVaoDB($tin$url,"vnexpress");
next($links);
}
?>
3)Bây giờ bạn có thể xem tin rồi đó,test thử nha!! hiện tại thì tin vẫn còn nằm lộn xộn lắm!và đang đuọc lưu trong table tinmoi!! bài lap kế tiếp mình sẽ hướng dẫn các bạn duyệt tin bằng Jquery nghĩa là mình có thể chọn tin cho nó ẩn ,hiện duyet hay khong duyet ,nổi bật hay không nỗi bật để đưa vào bảng tin show ra trang web


Chúc các bạn thành công và hẹn gặp lại ở bài lap tiếp theo

thay đổi nội dung bởi: tranvu-nn, 10-01-2011 lúc 23:27
Trả Lời Với Trích Dẫn
Đã có 12 người gửi lời cảm ơn tranvu-nn vì bài viết hữu ích này:
  #2  
Old 11-01-2011, 00:26
tampipi tampipi vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2009
Tuổi: 30
Bài gởi: 61
Thanks: 35
Thanked 8 Times in 6 Posts
hé hé làm dc rùi
sao không share lun code trang duyet_tinmoi.php lun
trang duyet_tinmoi.php sửa lại 2 chỗ kìa:
1> nút duyệt ko hoạt động
2> xem tin đề nghị full windows

cám ơn nhìu nha hjhj. Mà mấy cái này ngồi bốc tách css lâu lắm làm biếng thí mồ

vậy là giờ chôm dc dantri+vnexpress chắc đủ xài
Trả Lời Với Trích Dẫn
Những người sau đây đã gửi lời cảm ơn tampipi vì bài viết hữu ích này:
  #3  
Old 11-01-2011, 07:35
o0o_khoaphp_o0o o0o_khoaphp_o0o vẫn chưa có mặt trong diễn đàn
Banned
 
Tham gia ngày: May 2008
Tuổi: 33
Bài gởi: 1,362
Thanks: 22
Thanked 1,810 Times in 383 Posts
Bóc hình mô tả ra nữa cho nó đủ.
Trả Lời Với Trích Dẫn
  #4  
Old 12-01-2011, 14:04
traiphonuiktvn traiphonuiktvn vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Sep 2008
Bài gởi: 49
Thanks: 15
Thanked 2 Times in 2 Posts
Cảm ơn Vũ đã post bài hay.
Vấn đề đặt ra là: Bây giờ mình không muốn kích hoạt bằng tay Mà đưa thẳng tin vào các Loại tin của web luôn. Mình gặp một số vấn đề Mong mọi người giúp đỡ. Nếu có lab càng tốt.
1. Đưa thẳng tin vào CSDL với các loại tin trên web trùng với loại tin của web nguồn lấy tin
2. Chuyển Tiêu đề thành tiêu đề không dấu. (Trong Table tin có cột TieuDe_KhongDau)
3. Lọc những tiêu đề giống nhau thì không cập nhật và CSDL.
Cảm ơn cả nhà. Năm mới vui vẻ.
Trả Lời Với Trích Dẫn
  #5  
Old 14-01-2011, 19:29
toan88 toan88 vẫn chưa có mặt trong diễn đàn
Mới Đăng Ký
 
Tham gia ngày: Jan 2011
Tuổi: 32
Bài gởi: 1
Thanks: 0
Thanked 0 Times in 0 Posts
cho mình hỏi là sao simplehtmldom ko chạy dc trên host mà chỉ chạy dc ở local!
Trả Lời Với Trích Dẫn
  #6  
Old 15-01-2011, 15:52
tranvu-nn's Avatar
tranvu-nn tranvu-nn vẫn chưa có mặt trong diễn đàn
Moderator
 
Tham gia ngày: Aug 2010
Tuổi: 33
Bài gởi: 763
Thanks: 49
Thanked 490 Times in 215 Posts
Hii !! trang demo của mình đang chạy trên host mà!!! xem kĩ lại có up thiếu file không nha bạn
Trả Lời Với Trích Dẫn
  #7  
Old 15-01-2011, 15:58
tranvu-nn's Avatar
tranvu-nn tranvu-nn vẫn chưa có mặt trong diễn đàn
Moderator
 
Tham gia ngày: Aug 2010
Tuổi: 33
Bài gởi: 763
Thanks: 49
Thanked 490 Times in 215 Posts
Chào bạn traiphonuiktvn,Không phải khi vửa lấy tin về là mình đưa vào CSDL liền được!!! phải qua 1 bước duyệt tin lúc đó mình sẽ chọn theo thể loại và loại tin đúng với CSDL của website(cái này sẽ nẳm ở bài lap sau)
Còn vần đề đổi thành tieude_khongdau thì mình sẽ cung cấp cho bạn function này
PHP Code:
function changeTitle($str){
    
$str stripUnicode($str);
    
$str mb_convert_case($str,MB_CASE_TITLE,'utf-8');
    
// MB_CASE_UPPER / MB_CASE_TITLE / MB_CASE_LOWER
    //$str=trim(str);
    
$str=str_replace("‘","",$str);
    
$str=str_replace('"','',$str);
    
$str str_replace(' ','-',$str);
    return 
$str;
    } 
Khi dữ liệu trả về và trước khi nhập vào CSDL thì mình sẽ gọi hàm này đễ kiểm tra(mình chỉ giúp bạn hướng để làm còn vần đề locgic code chắc bạn phải suy nghĩ thêm)

CHúc bạn thành công
Trả Lời Với Trích Dẫn
Những người sau đây đã gửi lời cảm ơn tranvu-nn vì bài viết hữu ích này:
  #8  
Old 16-01-2011, 19:26
traiphonuiktvn traiphonuiktvn vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Sep 2008
Bài gởi: 49
Thanks: 15
Thanked 2 Times in 2 Posts
Trích:
Nguyên văn bởi tranvu-nn View Post
Chào bạn traiphonuiktvn,Không phải khi vửa lấy tin về là mình đưa vào CSDL liền được!!! phải qua 1 bước duyệt tin lúc đó mình sẽ chọn theo thể loại và loại tin đúng với CSDL của website(cái này sẽ nẳm ở bài lap sau)
Còn vần đề đổi thành tieude_khongdau thì mình sẽ cung cấp cho bạn function này
PHP Code:
function changeTitle($str){
    
$str stripUnicode($str);
    
$str mb_convert_case($str,MB_CASE_TITLE,'utf-8');
    
// MB_CASE_UPPER / MB_CASE_TITLE / MB_CASE_LOWER
    //$str=trim(str);
    
$str=str_replace("‘","",$str);
    
$str=str_replace('"','',$str);
    
$str str_replace(' ','-',$str);
    return 
$str;
    } 
Khi dữ liệu trả về và trước khi nhập vào CSDL thì mình sẽ gọi hàm này đễ kiểm tra(mình chỉ giúp bạn hướng để làm còn vần đề locgic code chắc bạn phải suy nghĩ thêm)

CHúc bạn thành công
Cảm ơn bạn Vũ nha. Mong có bài lab sau sơm sớm Chúc vui vẻ
Trả Lời Với Trích Dẫn
  #9  
Old 12-02-2011, 20:31
traiphonuiktvn traiphonuiktvn vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Sep 2008
Bài gởi: 49
Thanks: 15
Thanked 2 Times in 2 Posts
Hic hic thiếu trang duyệt tin rồi.
Trả Lời Với Trích Dẫn
  #10  
Old 24-03-2011, 09:21
chuong50237 chuong50237 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2010
Bài gởi: 21
Thanks: 8
Thanked 0 Times in 0 Posts
Sao anh vũ không Post tiếp phần 2 nhỉ
Trả Lời Với Trích Dẫn
Trả lời

Bookmarks

Ðiều Chỉnh

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Tổng hợp 1 Kho Ebook Về Tin Học dành cho bạn (Phần 1) techgle Tài Liệu Học Tập 13 11-11-2010 15:20
Tìm hiểu các số Sequence và số ACK, Destination Port và Source Port trong TCP Header vuivemai KHO LAB NHẤT NGHỆ 5 04-11-2010 06:48
Từ BOOTP đến DHCP vuivemai KHO LAB NHẤT NGHỆ 0 21-08-2009 00:28



Múi giờ GMT +7. Hiện tại là 19:40
Powered by: vBulletin Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Ad Management by RedTyger