Crawl dữ liệu là một vấn đề được nhiều người quan tâm, bài viết này sẽ hướng dẫn sơ bộ cho bạn cách “cào” dữ liệu sử dụng thư viện Simple HTML Dom, thông tin cụ thể của thư viện tại đây
* Website: http://sourceforge.net/projects/simplehtmldom/
* Additional projects: http://sourceforge.net/projects/debugobject/
* Acknowledge: Jose Solorzano (https://sourceforge.net/projects/php-html/)
Okay, bắt tay vào thôi
PHP Simple HTML DOM Parser là một thư viện của PHP giúp chúng ta có thể lấy các thuộc tính của các thẻ HTML trong 1 website rất dễ dàng. Nó hỗi trợ một số tính năng như
- Hôĩ trợ bóc tách dữ liệu theo từng id, class hoặc thể img, a, table, …
- Code ngắn dễ học, dễ viết, dễ nhớ …
- Khá nhẹ nhàng
Cài đặt Để để tải thư viện này bạn có thể lên trang chủ của nó tại địa chỉ phía trên để tải về. Sau khi có thư viện bạn copy file simple_html_dom.php vào dự án của mình và include file đó vào file bạn muốn lấy dữ liệu để sử dụng. Các khác bạn có thể cài đặt nó thông qua composer.
Sử dụng Thư viện này rất dễ sử dụng. Mình tìm hiểu qua một số tính năng của thư viện. Đọc nội dùng của một file.
$html = file_get_html('link của trang web'); echo $html;
Hiển thị tất cả các ảnh
$html = file_get_html('http://www.google.com/'); foreach($html->find('img') as $element) { echo '<img src="'.$element->src.'" /><br>'; }
Lấy nội dung từ một id cụ thể
$html = file_get_html('http://www.google.com/'); $noidung = $html->find('#ten_id',0);
Truyền số 0 vào đằng sau để lấy ra nội dung đầu tiên trong id của mảng. Các trường hợp lấy theo class, table, p … cũng lấy tương tự.
Thực hành lấy dữ liệu qua ví dụ cụ thể. Ví dụ 1. Hiển thị toàn bộ nội dung trang web.
include('simple_html_dom.php'); $url = 'http://thethao.vnexpress.net/photo/hau-truong/hom-nay-hoang-xuan-vinh-ve-nuoc-nguyen-tien-minh-quyet-dau-lin-dan-3452035.html'; $html = file_get_html($url); echo $html;
Ví dụ 2. Lấy ảnh từ trang web trên
<?php
include('simple_html_dom.php');
$url = 'http://thethao.vnexpress.net/photo/hau-truong/hom-nay-hoang-xuan-vinh-ve-nuoc-nguyen-tien-minh-quyet-dau-lin-dan-3452035.html';
$html = file_get_html($url);
$html->find('.block_thumb_slide_show',0)->outertext='';
$html ->load($html ->save());
$tieude = $html->find('.title_news',0);
$noidung = $html->find('#article_content',0);
?>
<h1><?=$tieude->plaintext?></h1>
<div id="content"><?=$noidung->innertext?></div>
Kết luận Vừa rồi mình mới giới thiệu qua cho các bạn về thư viện PHP Simple HTML DOM Parser để lấy dự liệu từ các trang web khác về web của mình.
Tham khảo
Có rất nhiều ứng dụng đến nay ( nay là 2022) vẫn có thể sử dụng được thư viện này, do đó nếu có thắc mắc hoặc hướng dẫn về cách code, cứ liên hệ với mình nhé
Quét mã QR để đọc bài viết này để xem tiếp trên điện thoại