0

Hướng dẫn viết tool Crawl dư liệu bằng Android.(p1)

Giới thiệu

Chào các bạn hôm nay mình chia sẻ một cách crawl dữ liệu từ các trang web. Câu chuyện: "Trong một lần làm việc mình phải copy nội dung trang web sử dụng làm dữ liệu cho app được viết trên android, làm công việc copy và paste một thời gian thì mình cảm thấy nó lặp đi lặp rồi nản, Chính vì vậy mình đã lên ý tưởng viết một cái tool be bé lấy dữ liệu mình cần thay mình Và rồi thì nó cũng được thực hiện..."

Trước khi các bạn đọc tiếp là mình cũng xin nói rõ là tool này được viết khi mình bắt đầu làm android bằng java nên có gì thiếu xót mong mọi người bỏ qua nha. Và sau này mình cũng đã viết nhiều tool những chủ yêu chạy bằng nodejs và lưu dữ liệu ở mongo, mysql. Nên đây chỉ là những cách cho các bạn tham khảo thôi ạ.

Nội dung.

Vectim:

Ở đây trang web mình muốn cralw là: https://vietjack.com/

Mục tiêu : Lấy nội dung bài , download hình ảnh, thay thế nội dung hình anh bằng link server của bạn.

Mình sẽ ví dụ crawl Nội dung của tất cả các môn của lớp 12. "https://vietjack.com/series/lop-12.jsp"

Có sản phẩm demo link github sau khi kết thúc nhé.

Tạo project và import nhưng thư viện cần thiết.

Chắc việt tạo project mình sẽ không hướng dẫn nhé vì nó quá cở bạn:

Ở đây khi bạn tạo project chọn ngôn ngữ java nhé.

import các thư viện dưới đây:( ở dây là phiên bản mình sử dụng tại thời điện viết tool nếu bạn muốn có thể thay đổi nhé"

    //Room
     Thằng này mình sẽ dùng dể lưu dữ liệu crawl về được.( Bạn cũng có thế lưu nó lên database khác cũng đc)
    implementation "androidx.room:room-runtime:2.2.0-rc01"
    annotationProcessor "androidx.room:room-compiler:2.2.0-rc01"
    

    //Jsoup
    Mình dùng thằng này để bọc tách html , khi vào mình sẽ chi tiết hơn.
    implementation 'org.jsoup:jsoup:1.12.1'
    
    

    //Retrofit2
    Dùng tải các hình ảnh lưu ở thiết bị.
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'

Còn mấy thư viện này thì import hoặc không cũng được :DD

 //ViewModel-LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.18'
    //
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'

Như vậy ta đã thiết lập công cụ để crawl mình sẽ hướng dẫn chi tiết ở phần tiếp theo nhé. Cảm ơn các bạn đã đọc bài.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí