Hướng dẫn goutte php - thả php

Giới thiệu

Thuật ngữ cào dữ liệu hay crawl data chắc chắn không còn xa lạ gì mọi người. Nó đơn giản là tự động hóa việc trích xuất thông tin từ một nguồn nào đó, cụ thể ở bài viết này là một website. Công việc này hoàn toàn có thể thực hiện bằng tay, nếu bạn có đủ thời gian và kiên nhẫn. Tuy nhiên để không phải ngồi hàng giờ liền click và copy past, bài viết này sẽ hướng dẫn cách viết một ứng dụng cào dữ liệu đơn giản.

Mục tiêu được [hoặc bị] cào dữ liệu hôm nay là trang bán điện thoại của thế giới di động. Tại link. Dữ liệu sau khi cào sẽ được lưu vào database.

Chuẩn bị

Đầu tiên bạn cần khởi tạo một ứng dụng Laravel và config kết nối đến databasse.

Tiếp đến, chạy đoạn lệnh sau để cài đặt thư viện Goutte

composer require fabpot/goutte

Goutte là một thư viện hỗ trợ việc crawl website rất hiệu quả.

Migrations và Models

Để không làm cho ứng dụng trở nên quá phức tạp, với mỗi sản phẩm, ta chỉ cần lấy 3 thông tin là: tên, giá và số sao được đánh giá. Database tương ứng chỉ có một bảng duy nhất. Chạy lệnh sau để tạo 2 file model và migrations cho bảng

php artisan make:model Product -m
7.

php artisan make:model Product -m

Hàm up[] trong file migration sẽ có nội dung như sau:

    public function up[]
    {
        Schema::create['products', function [Blueprint $table] {
            $table->id[];
            $table->string['name'];
            $table->integer['price'];
            $table->integer['rate'];
            $table->timestamps[];
        }];
    }

Đối với model ở file App\Product.php, chúng ta giữ nguyên không cần thay đổi gì. Quá trình khởi tạo cho database kết thúc bằng việc chạy migration. Lưu ý đảm bảo rằng MySQL [hoặc bất cứ database nào các bạn sử dụng] đang chạy và các thông tin kết nối DB ở file .env đã được điền đầy đủ và chính xác.

php artisan migrate

Viết web scraper

Bắt đầu

Bot sẽ không được viết vào controller hay model, thay vào đó, bạn tạo một file mới tại App/Scraper/TGDD.php với nội dung như sau:

Bài Viết Liên Quan

Chủ Đề