Hướng dẫn viết tool Crawl dư liệu bằng Android.(p2)
Bài đăng này đã không được cập nhật trong 3 năm
Ở 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