Trích rút dữ liệu bằng xml.
làm sao lấy được dữ liệu từ file pdf.
Xml đã trở thành một công cụ mạnh mẽ, bằng chứng là các đại gia trong giới phần mềm đã tích hợp xml vào những phần mềm của mình, xml được dùng để liên lạc, lưu trữ giữa các chương trình. Xml đã trở thành chuẩn để trao đổi dữ liệu trong môi trường web.
Khi bạn đi hát karaoke, người ta thường cho bạn một cuốn sách rất dày đúng hong nè, bạn tra nó như là cún từ điển, liệu có cách nào tra cho nhanh hong! dùng di động của bạn á, sau khoảng vài giây
Bạn hãy đặt câu hỏi là “dữ liệu bài hát đâu?”, lấy ở đâu, làm sao để lấy. Trên website của công ty thường cho bạn những file như là html, xsl, pdf hay tệ hơn nữa là file ảnh (bó chíu). Ở đây là một file PDF (khóc rùi), không lẽ ngồi ngõ lại sao?!.
Không!
Hãy dùng xml để trích rút.
== Mục tiêu: chuyễn dữ liệu danh sách bài hát từ file pdf thành xml có cấu trúc
đây là file list nhạc mới nhất gồm vol1 tới vol39 mình vừa tải trên trang chính của công ty. Rất hot đúng hong nà. ^^
H1> dữ liệu nguồn, 1 file pdf
H2> thành quả
== Thực hiện
Căn bản là bạn sử dụng công cụ chuyển từ PDF thành xml rồi sau đó lập trình hoặc sự dụng xslt để chuyển thành file xml có cấu trúc bạn soạn thảo ra.
Ở đây mình làm theo một hướng là PDF-> HTML –> XML –>(chương trình trích rút) –> File xml có cấu trúc mong đợi.
Lét’s nha!
= Đầu tiên mình dùng công cụ SomePDF to Html Converter để chuyển từ pdf sang xml.
Ở phần Output Option các bạn chú ý: trích xuất ra tất cả ra 1 trang, chỉ xuất phần nội dung. Các bạn chọn cho đúng nha, việc này để dễ hơn cho quá trình tiếp theo thôi.
H3> PDF=>HTML
Đây là kết quả sau khi convert sang html
Nội dung không hiển thị được tiếng việt, do được mã hóa theo bảng mã VNI-TIMES, do đó công đoạn tiếp theo phải làm theo chuyện là chuyển về bảng mã Unicode
H4> Kết quả trích rút
H5> Hiện thị nội dung của đoạn html vừa chuyển thành
đây là công đoạn chuyển html thành xml sử dụng notepad++
H6> chuyển qua xml
Chuyển qua bảng mã Unicode bằng phần mềm Unikey
H6> Chuyển bảng mã thành Unicode
Ồ! đã hiển thị được tiếng việt.
Đã có tập tin xml rùi, đơn giản he ^^. Đúng là ta đang có một file xml nhưng nhìn xem nó là một đống hổn loạn các thẻ, các thuộc tính, các định nghĩa css, dữ liệu mà ta xem là rác. Những các tên bài hát thì rời rạc từng dòng!
Tưởng chừng như là ta phải dừng lại ở đây, nhưng cố gắng nhìn kĩ một xíu nha.
xíu nữa ….
ra chưa ?!
Bạn nhìn lại file pdf trên đầu bài viết! bạn thấy nó hiển thị có cấu trúc đúng ko?
Chúng hiển thị theo các bảng, tên tiêu đề được định dạng khác, dữ liệu (tên bài hát, mã bài hát, lời bài hát, tác giả) tất cả thông tin này được hiển thị một cách đều đặn có định dạnh chuẩn chung từ kiểu chữ, font chữ, cở chữ màu sắc.
Do đó khi chuyển ra chúng vẫn mang hơi hướng của việc định chuẩn chung thông tin (mình nói trừu tượng cho zui, tuy là khó hiểu) =.=
Bây giờ bạn nhìn file xml xem
Có gì khác không?
bạn xem cái thuộc tính class trong thẻ vid, nó đó
file css định nghĩa cách hiển thị
trong file này thì cái định danh cho hiển thị này nằm trong thuộc tính class.
và đây cũng là chìa khóa
bạn dùng nó để giải mã file pdf
Thử xem nè:
class “ft4” là mã bài hát
class “ft5” là thông tin tên bài hát
class “ft6” là lời bài hát
“ft3” là tên tác giả
Tới đây thì mình nghĩ bạn đã hiểu bản chất vấn đề. Không có gì khó ở đây cả, vấn đề là bạn tinh tường một chút thôi, nhìn kĩ. Lúc đầu mình cũng tưởng chường như đã đầu hàng, nhưng rồi một tia sét ! mình nhận ra là cuộc đời này vẫn đẹp! (relax chút)
H7> Nhìn kĩ, chút để ngộ ra
Chắc có lẽ bạn đã nắm được vấn đề.
Việc còn lại là bạn code vài dòng để trích ruốt, vài câu lệnh if, dùng .Net + using System.Xml là oke
H8> Xml có cấu trúc mong muốn
Khi đã có file xml có cấu trúc mong đợi bạn hoàn toàn có thể chuyển nó tới một định dạng bất kỳ mà mình mong muốn ví dụ như file access, excel, sql, word.
H9> Lên dĩa …
== Kết bài: Điều cuối cùng mình muốn nói ở đây mình không chỉ bạn cách để chuyển từ file pdf sang file xml có cấu trúc mong muốn, mà là tư tưởng. Với nó bạn có thể làm được nhiều thứ hơn là bạn nghĩ. Chẳng hạn như có một trang web (html) cung cấp thông tin giá cả thị trường, bạn hoàn toàn có thể chuyển nó về thành dữ liệu của mình
Không có nhận xét nào:
Đăng nhận xét