Hướng dẫn cách dùng thư viện axios năm 2024

Việc crawl dữ liệu trên website có nhiều cách và nhiều ngôn ngữ ví dụ với java, python,... bài viết này chúng ta sẽ cùng tìm hiểu cách thu thập điểm thi lớp 10 bằng thư viện Axios của Javascript nhé.

Trước khi vào bài viết thì chúng ta cần biết thư viện Axios là gì?

Thư viện Axios.

Axios là một thư viện HTTP Client dựa trên Promise. Cơ bản thì nó cung cấp một API cho việc xử lý XHR [XMLHttpRequests]. Trong bài viết này, chúng ta sẽ tìm hiểu làm thế nào để thực hiện một HTTP request bằng cách sử dụng axios nhé.

Để sử dụng được thư viện này, đầu tiên chúng ta phải cài đặt nó đã.

  • Sử dụng npm: npm install axios --save
  • Sử dụng bower: bower install axios
  • Sử dụng CDN:

Chi tiết về cách dùng thì có thể tìm hiểu thêm ở link github của thư viện này.

Bắt đầu code.

Mình sẽ crawl điểm ở trên trang này nhé.

Phân tích trang web

Khi mình tra cứu SBD như thế này và sử dụng Developer Tool, ở tab Network mục XHR, thì nó sẽ trả về điểm thi từ đường link này.

Nhìn vào link, ta có thể thấy hai giá trị mình đã nhập vào là Số báo danh và Mã xác thực.

Nếu bây giờ mình muốn có được bảng số liệu về điểm thi của cụm này rồi dùng nó để phân tích, dự đoán điểm chuẩn thì làm thế nào ?

Sử dụng thư viện axios.

const axios = require['axios'];
var list;
axios.get['//tracuudiem.danang.gov.vn:8443/tracuu/public/diemthi?capt=BHP6&cot1=090130&cot2=&cot3=&cot4=&cot5=&cot6=&cot7=&page=0&size=3&kyThiId=35']
            .then[function[res] {
                list = res.data;
                console.log[list];
            }]
            .catch[function[err] {
                console.log['error at 090130'];
            }]

Đoạn code phía trên là ví dụ cho việc sử dụng axios.

Kết quả in ra một Object với nhiều keys như hình, nhưng cái mình quan tâm chỉ là những giá trị của key content.

Bây giờ code một chương trình hoàn chỉnh để crawl tất cả các điểm của thí sinh ở cụm thi này nhé.

Ở cụm thi này, theo mình biết là có 549 thí sinh, nên mình sẽ cho một vòng lặp for chạy từ 1 đến 549, sau đó xử lý một chút để cho ra một SBD đúng.

Mình cần lưu lại các giá trị để phân tích nên mình sẽ sử dụng thêm thư viện fs để đọc, ghi file json.

Bước 1: Tạo một file data.json.

Bước 2: Tạo file index.js và viết code.

const axios = require['axios'];
const fs = require['fs'];
var list;
async function searching[]
{
        for[let i = 1; i 

Chủ Đề