Cùng học YQL

Ở đây chắc là anh em ai cũng biết đến phần mềm Yahoo Messenger phải không? Nhắc đến Yahoo là nhắc đến cả tuổi thơ mộng mơ đầy biến động với vô số những câu chuyện vui buồn mà hầu hết chúng ta đã cùng trải qua với những cái nick thật kêu như boy_di_dream_chien_hai_tay_hai_kiem hay, anhxinloi_vilamemcobau, deptrai_hocgioi_khongcankhen….

images1731376_yahoo_messenger_logosvg

Chính vì thế hôm nay mình muốn cùng các bạn cho tôi 1 vé đi tuổi thơ cùng với Yahoo nhưng không phải là Yahoo Messenger mà là cùng với YQL :v

cho_tc3b4i_xin_me1bb99t_vc3a9_c491i_tue1bb95i_thc6a1

Tóm lại thì YQL là cái răng cái mô cái chi?

Ngắn gọn lại thì YQL là tên viết tắt của Yahoo Query Language, nó giống kiểu của SQL ấy mà. Cú pháp cái gì cũng giống SQL thôi, đơn giản như mấy câu SELECT, FROM, WHERE thì mấy thằng QL nào nó cũng thế ấy mà. Chính do đó nên để học YQL thì nếu anh em đã biết SQL rồi thì không cần học nữa :v. Địa chỉ chính của trang chuyên YQL đó là https://developer.yahoo.com/yql/

Screen Shot 2017-03-27 at 6.24.27 AM

Thế học YQL thì có tác dụng gì đây. Học xong để đó thì học làm gì nào? Chí ít thì anh chủ blog đẹp giai, giỏi giang, thanh lịch cũng phải giải thích qua 1 ít để đồng bào nghe không rõ còn nắm được chứ :v

Vâng. Tác dụng của YQL thì nhiều nhắm nhắm, anh em nghĩ được cách dùng với nó thì dùng thôi, không biết thì đọc tiếp bài viết của mình :))

YQL dùng để đọc, lọc, sắp xếp dữ liệu thông qua webservice; chuyển đổi giữa XML và JSON này; trộn dữ liệu từ hầm bà lằng nhằng các nguồn dữ liệu khác nhau này,; tăng tốc ứng dụng chỉ với 1 vài dòng code vớ vỉn này, dễ dàng tạo API để cào trộm HTML từ mấy trang web này; rồi thì định nghĩa các Open Datatable cho việc truy cập các nguồn dữ liệu này. Đấy mình dịch xong mấy ý trên cái hình ở trên rồi đấy :)) Anh em đọc xong đã hiểu chửa :v

Đọc đến đoạn này chắc nhiều anh em trong lòng thầm nghĩ “Mày nói thế thì bố thằng nào hiểu được, nói thì chung chung y như mấy thằng sếp của tao hay chém gió ấy !!!!”.

Chính vì vậy thì để đơn giản và dễ hiểu hơn mình xin trình bày lại ý tưởng của thằng YQL này mà không qua mấy câu nó giới thiệu nữa :3

Anh em nào từng đọc bài viết Xây dựng ứng dụng crawler với .NET thì cũng có nắm được đôi chút về việc xây dựng 1 ứng dụng chuyên đi “crawl” dữ liệu từ các trang HTML rồi đúng không? Viết code được cho mấy cái này thấy nó cũng lằng nhằng quá, hơi kho khó 1 ít. Còn nếu anh em nào đọc bài Tớ đã học python như thế nào thì chắc có ngó qua đoạn code crawl mấy trang ăn uống của mình trong đó nó có dễ hiểu hơn tí là cái chắc nhưng mà vẫn thấy mệt đúng không? Chính do đó mà anh Yahoo đã nghĩ ra cái YQL này là để anh em có thể crawl data từ các trang web HTML đơn giản hơn, nhanh chóng hơn. Tốc độ thực thi thì đảm bảo còn nhanh hơn mấy cái anh em ta tự viết rồi vì cái này sử dụng máy chủ của Yahoo thay vì mấy con laptop cùi rồi :3

Cách dùng nó thì khá là đơn giản, anh em nào tự đọc chắc chỉ 10-15 phút là xong 1 cái crawler được :v Không tin thì anh em có thể vào trang web lúc nãy mình gửi rồi nhẹ nhàng lướt 2 ngón tay xuống dưới tầm 300px là thấy được ví dụ minh họa rất là trực quan

Screen Shot 2017-03-27 at 6.36.53 AM

Đó anh em thấy chửa. Câu lệnh truy vấn giống mấy cháu MySQL, SqlServer hay Oracle chưa, mình bảo mà giống lắm :3

select * from html where url=’http://en.wikipedia.org/wiki/Yahoo’ and xpath=’//table/*[contains(.,”Founder”)]//a’

Câu này đơn giản là nó truy cập trang web wikipedia để đọc nội dung của thằng Yahoo rồi tìm những link chứa chữ Founder thông qua XPATH thôi :3

Chết quên, có anh em nào chửa biết XPATH không nhỉ? Dễ hiểu thì XPATH là ngôn ngữ để truy vấn dữ liệu trong XML (Mẹ sao lắm ngôn ngữ truy vấn thế không biết 😐 THôi anh em chịu khó học 1 tí cho đỡ chán vậy, chứ mình cũng không biết làm sao cả :v ) Do trang web thì trả về là HTML hay thực ra cũng chính là 1 file XML thôi nên chúng ta có thể sử dụng XPATH để truy cập vào từng node trong file XML đó và đọc dữ liệu ra. Anh em nào muốn đọc thêm về XPATH thì vào trang sau http://zvon.org/xxl/XPathTutorial/General/examples.html

Giờ thì nói tiếp về cái kia nhé :3 Anh em viết câu truy vấn xong thì dữ liệu trả về có thể chọn là XML hoặc JSON tùy ý :3. Cái nào mình thích thì mình dùng thôi đúng không :))

Screen Shot 2017-03-27 at 6.45.16 AM

Cái quan trọng mà mình nhắc anh em cần lưu tâm đó chính là Endpoint hay còn gọi là “ĐẦU RA”. Khi anh em viết xong 1 câu lệnh YQL thì thằng Yahoo sẽ sinh ra 1 đường dẫn gọi đến API của nó với tham số truyền vào là câu lệnh anh em ta vừa viết (AI chưa biết API là gì thì đọc tiếp bài Tự động cập nhật thông tin thời tiết (Trở thành chuyên gia hệ thống cùng Siêu sò phần 4) ). Giờ thì đơn giản là anh em sẽ viết code bằng cái khỉ mẹ gì cũng được để call cái API kia thì nó sẽ trả về kết quả mà anh em hằng ước ao thôi :3

559803_469024616503614_164387888_n

Đấy thế là hết ý của cái YQL rồi đó. Nghe vẻ thì khá là đơn giản đúng không, đúng là nó cũng đơn giản thật không quá khó đâu nhwg nếu biết ứng dụng thì rất là mạnh mẽ đấy anh em à :3

Hôm nay mình giới thiệu đến anh em bài viết về YQL là để chuẩn bị tiếp cho series “Xây dựng chatbot cùng API.AI”. Thông qua bài viết này anh em sẽ có 1 cách nhìn tổng quan về việc crawl data nhiều hơn. Trong các bài viết tiếp mình sẽ hướng dẫn sử dụng YQL để đi cào trộm dữ liệu từ mấy trang như Eva hay Phụ nữ to dày để tích hợp những thứ đã lấy được vào con chatbot :)) Mong anh em tiếp tục đón đọc :3

food-please-please

Advertisements

One thought on “Cùng học YQL

  1. Pingback: Xây dựng chatbot cùng API.AI: tổng quan về Flask và Heroku (phần 3) | Code, code and more code

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s