Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Sử dụng kỹ thuật phân tích cú pháp XML bằng PHP nhằm Crawl dữ liệu Website - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Chào mọi người, hôm nay chúng ta sẽ khám phá một trong những ngôn ngữ lập trình có tuổi đời lâu nhất và phổ biến nhất hiện nay – đó là PHP. Đối với cộng đồng lập trình, chắc chắn mọi người đã từng tiếp xúc và hiểu biết về ngôn ngữ này.

Ngày nay, tất cả các dự án web, bất kể lớn hay nhỏ, đều sử dụng PHP để xây dựng. Trong bài viết này, chúng tôi muốn giới thiệu một ứng dụng phổ biến và được lập trình viên ưa chuộng, đó là cách crawl dữ liệu từ trang web bằng kỹ thuật phân tích cú pháp XML sử dụng PHP.

Ứng dụng này thực sự quan trọng và mặc dù có thể không quá khó khăn, nhưng cũng không phải là một nhiệm vụ dễ dàng. Hãy cùng tôi đi qua từng bước chi tiết dưới đây. Hãy đọc kỹ, và chắc chắn rằng bạn sẽ có thể thực hiện thành công trên trang web của mình!

Crawl dữ liệu website là gì?

Bạn đã bao giờ tự đặt câu hỏi rằng làm thế nào có thể thu thập toàn bộ dữ liệu lớn từ các trang tin tức lớn như zing.vn, vnexpress.net, hoặc từ các sản phẩm trên các trang thương mại điện tử hàng đầu như Amazon chưa? Giả sử bạn có đủ siêng năng và làm việc chăm chỉ bằng cách truy cập từng trang tin, từng sản phẩm để sao chép về trang web của mình, nhưng điều này sẽ tốn rất nhiều thời gian và nỗ lực để hoàn thành một phần nhỏ của công việc.

Vì vậy, chúng ta cần áp dụng một kỹ thuật đặc biệt để giải quyết vấn đề này, đó chính là kỹ thuật “Crawl”. Trước khi bắt đầu thực hiện, hãy cùng tìm hiểu một chút về kỹ thuật này!

crawl-itnavi-1
Kỹ thuật crawl dữ liệu website là kỹ thuật để thu thập dữ liệu khá phổ biến

Kỹ thuật crawl dữ liệu website đang trở thành một phương pháp phổ biến để thu thập thông tin, và Google bot được coi là một dạng của công nghệ này. Ứng dụng của kỹ thuật crawler trong thực tế rất đa dạng, ví dụ như xây dựng ứng dụng đọc báo bằng cách thu thập dữ liệu từ các trang tin lớn, hoặc crawl thông tin tuyển dụng từ các nguồn đáng tin cậy. Có nhiều cách để tạo một web crawler và nhiều framework hỗ trợ, trong đó, Scrapy của Python là một ví dụ nổi bật.

Trong bài viết này, chúng ta sẽ khám phá kỹ thuật crawl dữ liệu website, tập trung vào việc sử dụng phân tích cú pháp XML bằng PHP.

Đầu tiên, hãy cùng nhau hiểu web crawler là gì. Nói một cách đơn giản, web crawler là kỹ thuật thu thập dữ liệu từ các liên kết được chỉ định trước trên các trang web trên internet. Nếu trong quá trình thu thập dữ liệu, bạn chỉ quan tâm đến những thông tin cụ thể liên quan đến nhu cầu của mình, điều này được gọi là web scraping. Tuy web crawler và web scraping có nhiều điểm giống nhau, nhưng mục tiêu chính của chúng có thể khác nhau.

Ví dụ, đối với trang web tiki.vn, kỹ thuật web crawling sẽ thu thập toàn bộ nội dung của trang (tên sản phẩm, mô tả, giá cả, hướng dẫn sử dụng, đánh giá, và bình luận). Trong khi đó, web scraping có thể chỉ quan tâm đến một số thông tin nhất định, ví dụ như giá sản phẩm để tạo ứng dụng so sánh giá.

Dữ liệu thu thập từ quá trình crawl có thể được lưu trữ trong cơ sở dữ liệu để phục vụ cho việc phân tích hoặc sử dụng cho mục đích khác. Hoặc, nó cũng có thể hiển thị trực tiếp trên trang web, như trong trường hợp các trang tin tức hoặc dự báo thời tiết.

Hướng dẫn thực hành Crawl dữ liệu từ trang VNExpress Rss

Trang web VNExpress cung cấp cho các bạn một danh sách tin tức rất đầy đủ và cập nhật theo thời gian bằng định dạng Rss là trang https://vnexpress.net/rss. Nào hãy bắt tay vào thôi.

Bước 1: Cài đặt môi trường

PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL. Và đây là link cài đặt môi trường cho các bạn https://hourofcode.vn/cai-dat-moi-truong-cho-php/.

Sau khi đã cài đặt môi trường rồi thì để code PHP cần 1 IDE tốt để code ở đây mình chọn Sublime Text

Bước 2: Tạo folder chứa trang web

Sau khi đã cài môi trường thành công (ở đây mình cài XAMPP) các bạn vào đường dẫn C:xampphtdocs tạo 1 folder mới và đặt tên cho nó mình sẽ đặt là CodeLearnNews.

Sau đó tạo 1 file index.php bên trong folder CodeLearnNews trong CodeLearnNews.

Sau đó add folder CodeLearnNews vào Sublime Text rồi tạo 1 folder mới nữa với tên getdata bên trong folder CodeLearnNews, tạo file mới với tên get_data_home.php để lấy dữ liệu cho trang chủ của mình.

Bước 3: Code

Các bạn vào file get_data_home.php chúng ta sẽ lấy dữ liệu tin mới nhất.

<?php

$url='https://vnexpress.net/rss/tin-moi-nhat.rss';

$lines_array=file($url);

$lines_string=implode('',$lines_array);

$xml = simplexml_load_string($lines_string);

if ($xml === false) {

    echo "Failed loading XML: ";

    foreach(libxml_get_errors() as $error) {

        echo "<br>", $error->message;

    }

}else{

    echo $xml->asXML();

}

?>

Bước 4: Chạy trên trình duyệt

Dữ liệu của chúng ta là dữ liệu dạng XML.. Kết quả.

Thực sự, phương pháp này rất đơn giản phải không? Trong bài viết tiếp theo, chúng tôi sẽ giới thiệu đến bạn nhiều kỹ thuật Crawl tinh tế hơn, nhắm đến các trang thông tin thương mại điện tử lớn trên toàn cầu như Amazon, Alibaba, và thậm chí là Tiki ở Việt Nam. Chúng tôi mong rằng qua bài viết này, bạn sẽ có được những thông tin hữu ích nhất, từ đó cập nhật những sản phẩm mới nhất cho trang web của mình. Hãy thử code và thực hiện, lặp lại quá trình một vài lần; chắc chắn bạn sẽ hiểu và thực hiện một cách thành thạo nhất.

Chúc bạn thành công!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *