+1

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

Ở phần 1 mình đã hướng dẫn các bạn tạo project và importcác thư viện cần thiết.

Phần này thì mình sẽ đi chi tiết vào code.

Phân tích cấu trúc trang web

Ở địa chỉ : https://vietjack.com/series/lop-12.jsp

Mình sẽ chọn một môn nhé các môn còn lại tương tự:

Chọn môn "Giải bài tập SGK Vật Lí 12" nhé: https://vietjack.com/giai-bai-tap-vat-ly-12/index.jsp

Về trức quan ta thấy Môn này sẽ có 3 lớp dữ diệu:

  • Lớp1: Index (Mục lục) chứa bài tất cả các bài của Môn.
  • Lớp2: Đi vào từng bài của mục lục là tất cả các bài tập mỗi bài
  • Lớp3: Nội dung của từng bài tập.

Nhữ vậy chúng ta sẽ lấy, Mục lục->Bài->nột dung của bài

Xây dựng model và lưu trữ dư liệu

Tạo model chữa các nội dung cần crawl

Ví dụ LyEntity ( mình comment tại code luôn nhé)

Các bạn có thể thay đổi tên các thuộc tính, ở đây mình đặt trung với thẻ chữa dữ liệu luôn.

Chi tiết mình sẽ đặt link github phần kết thúc P3 nhé

package net.blogsv.database.entity;

import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;

/**
 * Created by LilWind NTS on 10/09/2019.
 * admin@blogsv.net
 */
@Entity
public class LyEntity {
    @PrimaryKey(autoGenerate = true)
    private int id; // Thuộc tính auto tự tăng lên cái này không quan tâm
    @ColumnInfo
    private String h2;//
    @ColumnInfo
    private String h3;// Mình dùng để chứa Chương của mục lục Môn
    @ColumnInfo
    private String ul;// Dùng lưu Danh sách bài phần Mục lục
    @ColumnInfo
    private String ul2;//Dùng lưu danh sách bài tập của mỗi bài học
    @ColumnInfo
    private String contentUl; // Chứa nội dung chi tiết của bài tập
    private int like = 0; // Trường này thì bạn có thể bỏ vì cái này mình tạo có liên quan đến app của mình làm

    public int getLike() {
        return like;
    }

    public void setLike(int like) {
        this.like = like;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getH2() {
        return h2;
    }

    public void setH2(String h2) {
        this.h2 = h2;
    }

    public String getH3() {
        return h3;
    }

    public void setH3(String h3) {
        this.h3 = h3;
    }

    public String getUl() {
        return ul;
    }

    public void setUl(String ul) {
        this.ul = ul;
    }

    public String getUl2() {
        return ul2;
    }

    public void setUl2(String ul2) {
        this.ul2 = ul2;
    }

    public String getContentUl() {
        return contentUl;
    }

    public void setContentUl(String contentUl) {
        this.contentUl = contentUl;
    }
}

Tạo Database và Download file hình ảnh.

Ở đây mình dùng Room để lưu trữ dữ liệu và dùng Retrofit để tải hình ảnh về nhé

2 Phần này các bạn tự tìm hiểu và xem code trong link github ở P3 nhé, ví nếu giải thích sẽ mất nhiều thời gian:

Hôm nay đến đây thôi mình sẽ kết thúc ở phần 3 nhé

Phần 3 mình sẽ bóc tách file HTML và lưu vào database. Cảm ơn các bạn đã đọc bài viết.

`


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í