This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Đọc sách ở Maxreading.com

Let's hack it ;)
Added by over 3 years ago

Tải sách từ Maxreading.com

Giới thiệu

Trang web http://maxreading.com/ có vài cuốn sách hay, nhưng lại không rõ nguồn gốc trích dẫn, cũng như không nêu rõ ràng về bản quyền sử dụng. Như thế, việc xem sách ở trang đó có thể có rất lợi, mà cũng hại vô cùng: giống như ăn trái táo TQ có hóa chất trừ sâu: ăn một hai trái thì thấy bình thường... vẫn bình thường cho đến khi đổ gục vì thuốc!!

Là khách xem sách ở http://maxreading.com/, bạn sẽ gặp bất tiện, vì sau khi xem xong vài trang, bạn sẽ bị ngăn lại bởi yêu cầu đăng nhập. Để đăng ký tài khoản, phải sử dụng dịch vụ nhắn tin qua điện thoại di động:

Từ điện thoại di động, soạn tin với nội dung FIBO BOOK gửi đến 8785, hệ thống của chúng tôi sẽ trả về tin nhắn chứa thông tin tài khoản của bạn.

Từ thông tin cho thấy: mặc dù server phục vụ cho trang web đặt tại Mỹ, trang Maxreading.com đang sử dụng SMS Gateway của Việt Nam (cụ thể, dịch vụ của Fibo). Việc gửi tin nhắn đăng ký khiến tài khoản điện thoại của bị hao hụt. Vấn đề là, con số hao hụt bằng bao nhiêu?

Như thế, có ít nhất 3 sự thiếu rõ ràng ở http://maxreading.com/. (Tôi hy vọng rằng, sau khi nhận được bài viết này, Maxreading Team sẽ thay đổi cách cung cấp thông tin, và vì thế sẽ không coi bài viết của tôi là một cách phá hoại hoạt động của họ.)

Vấn đề

Do Maxreading không có khuyến cáo nào về bản quyền sử dụng tài nguyên trên trang web của họ (thực ra thì khuyến cáo rất chung chung và gây hiểu nhầm, kiểu “Sách, tài liệu trên website được sưu tầm trên mạng Internet và có bản quyền thuộc về các tác giả.”), tôi cho rằng việc dùng wget để tải sách từ trang đó là rất bình thường.

Vấn đề là, dùng wget có được chăng? có bị chặn bởi bộ đếm số lần truy cập? Bạn sẽ tự trả lời câu hỏi này.

Tiếp theo, ở trang Maxreading có rất nhiều sách, sắp xếp tương đối rõ ràng. Làm thế nào để tải về xác định đầy đủ mọi phần cần tải về và giữ nguyên cấu trúc của các chủ đề, sách?

Giải quyết

Tôi viết một chương trình bằng ruby để đọc ra cấu trúc các cuốn sách tại Maxreading. Sau đó, từ kết quả thu được của kịch bản, thực hiện post-processing để thu được một kịch bản dùng wget để tải sách.

Kết quả thực hiện của kịch bản maxreading.rb như sau đây (xem chi tiết trong maxreading.log). Toàn bộ thông tin cơ bản về các chủ đề, tựa đề sách, danh sách các chương đề thể hiện rõ. Bạn có thể sử dụng các bộ lọc để lấy ra thông tin cần thiết. Tuy nhiên, vì kết quả khá đồ sộ (104754 dòng kết quả xuất từ maxreading.rb, 34314 chương sách cần tải về, tổng dung lượng 1.3GB), nên thay vì chạy maxreading.rb trực tiếp, bạn có thể dùng các kết quả đã được cung cấp sẵn.

12      => Địa lý
1       => Khoa học
...
11      => Vui cười
5       => Y học - Sức khỏe
CAT: parsing 5  => Y học - Sức khỏe
291     => 238 lời giải về bệnh tật trẻ em
...

CHAPTER: parsing 32640  => Tàu về Đà Nẵng tránh bão 
SCRIPT: wget http://maxreading.com//?chapter=32640 -O 32640.html
CHAPTER: parsing 32646  => Tham quan Viện Hải Dương học Nha Trang và các vịnh ở Nam Trung bộ 
SCRIPT: wget http://maxreading.com//?chapter=32646 -O 32646.html
CHAPTER: parsing 32641  => Huyền thoại về các con tàu không số 
SCRIPT: wget http://maxreading.com//?chapter=32641 -O 32641.html
CHAPTER: parsing 32647  => Trên vùng biển Tây Nam 
SCRIPT: wget http://maxreading.com//?chapter=32647 -O 32647.html
CHAPTER: parsing 32636  => Lời nói đầu - Biển Đông yêu dấu 
SCRIPT: wget http://maxreading.com//?chapter=32636 -O 32636.html

Ghi chú

Nếu bạn có thắc mắc hay phản hồi liên quan tới kịch bản maxreading.rb, vui lòng gửi email về tác giả (xkyanh ở gmail). Chân thành cảm ơn.


Comments