Crawl data ở web có nút load more

Em muốn lấy dữ liệu 1 danh sách các câu hỏi từ trang quizlet. Và dùng JSOUP để xử lý.
Nhưng có 1 vấn đề là nếu trang đó có quá nhiều câu hỏi thì sẽ không hiện ra hết, và có thêm 1 nút load more phải bấm vào đó mới hiện ra hết.
Vậy giải pháp nào giúp em có thể lấy được full dữ liệu ra ạ?

Nút đó thường sẽ gọi đến XmlHttpRequest, dữ liệu trả về là json hoặc xml.
Đó là AJAX.
Lấy url và phương thức (POST, GET) của nút gọi tới bằng javascript. Gọi lại tương tự trong JSoup.

Hoặc dùng Selenium Web Driver với từ khóa: java selenium.

4 Likes

Em đã từng thử trên trình duyệt bằng cách bấm load more và thấy trên thanh địa chỉ URL không thay đổi.
Cho nên em nghĩ nó là post request và em đã sử dụng network tool của chrome để xem request/response.
Nhưng mà ở đó nhiều quá em không biết lọc như nào nữa !!

Network Tools bạn xóa hết các bản ghi trước đó, sau đó nhấn nút Load more để xem url được tải.
Đâu cần xem các url trước đó đâu.

3 Likes

Trước khi bấm load more em đã bấm nút clear rồi.
Nhưng sau khi bấm load more nó lại xổ ra cả đống thông tin nữa anh ạ.
Em đang nghĩ tới cách render html trên server xong giả lập click nút đấy không biết về hiệu năng có ổn không hả anh.

Thì mình có nói đến Selenium Web Driver đấy! Cứ thử xem.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?