Sử dụng JavaScript trích xuất thông tin bài đăng từ nguồn cấp dữ liệu

Sử dụng JavaScript trích xuất thông tin bài đăng từ nguồn cấp dữ liệu

Dưới đây là đoạn JavaScript đơn giản trích xuất thông tin của một bài đăng bao gồm: id, ngày xuất bản, ngày cập nhật, danh sách label, tiêu đề, nội dung hoặc đoạn trích tóm tắt, liên kết bài đăng, hồ sơ tác giả, ảnh bài viết, số nhận xét từ nguồn cấp dữ liệu feeds, lưu ý cần cài đặt cho phép nguồn cấp dữ liệu blog. Mình có ghi rõ trong phần chú thích script các bạn có thể cài đặt thay thế


<script>//<![CDATA[

var home_page = '/', // Nếu nguồn cấp blog khác ghi điạ chỉ trang chủ blog

  start_index = 1,  // post bắt đầu

  max_results = 5, // Số post cần lấy thông tin

  blogId = '1452417794068999357' // ID của blog

function extract_data(e) {

  if (e.feed.entry) { // Nếu blog có bài đăng

    for (var i = 0; i < e.feed.entry.length; i++) { // Tạo vòng lặp lấy số tăng dần từ 0 và bé hơn tổng số post của blog

      var entry = e.feed.entry[i], // Thông tin chung của mỗi post

        c = ''

      c += i + '.['

      c += '<br>'

      c += '&nbsp; &nbsp; id: ' + entry.id.$t.replace('tag:blogger.com,1999:blog-' + blogId + '.post-', '') + '<br>' // id post

      c += '&nbsp; &nbsp; published: ' + entry.published.$t + '<br>' // Ngày xuất bản

      c += '&nbsp; &nbsp; updated: ' + entry.updated.$t + '<br>' // Ngày cập nhật

      c += '&nbsp; &nbsp; category: <br>' // Danh sách label

      if ('category' in entry) {

        c += '&nbsp; &nbsp; {<br>'

        for (var k = 0; k < entry.category.length; k++) {

          c += '&nbsp; &nbsp; &nbsp; &nbsp; ' + k + ': ' + entry.category[k].term + '<br>'

        }

        c += '&nbsp; &nbsp; }<br>'

      }

      c += '&nbsp; &nbsp; title: ' + entry.title.$t + '<br>' // Tiêu đề

      if('content' in entry){

        c+='&nbsp; &nbsp; content: '+entry.content.$t + '<br>'

      }else if('summary' in entry){

        c+='&nbsp; &nbsp; summary: '+entry.summary.$t + '<br>'

      }

      for (var a = 0; a < entry.link.length; a++) { // Liên kết

        if (entry.link[a].rel == "alternate") {

          c += '&nbsp; &nbsp; link: ' + entry.link[a].href + '<br>'

          break

        }

      }

      c += '&nbsp; &nbsp; author:<br>' // Hồ sơ tác giả

      c += '&nbsp; &nbsp; {<br>'

      c += '&nbsp; &nbsp; &nbsp; &nbsp; name: ' + entry.author[0].name.$t + '<br>'  // Tên

      c += '&nbsp; &nbsp; &nbsp; &nbsp; uri: ' + entry.author[0].uri.$t + '<br>' // Liên kết hồ sơ

      c += '&nbsp; &nbsp; &nbsp; &nbsp; gd$image: ' + entry.author[0].gd$image.src + '<br>' // Ảnh

      c += '&nbsp; &nbsp; }<br>'

      if ('media$thumbnail' in entry) { // Ảnh

        c += '&nbsp; &nbsp; media$thumbnail: ' + entry.media$thumbnail.url + '<br>'

      }

      if ('thr$total' in entry) { // Số nhận xét

        c += '&nbsp; &nbsp; thr$total: ' + entry.thr$total.$t

      }

      c += '<br>'

      c += ']<br>'

      document.getElementById('ta_output').innerHTML += c

    }

  }

}

document.write('<script src="'+home_page+'feeds/posts/default?alt=json-in-script&start-index='+start_index+'&max-results='+max_results+'&callback=extract_data"><\/script>')

//]]></script>

Xem demo

Previous Post
Next Post

post written by:

Xin chào! Mình là BaoTrongIT – một lập trình viên đam mê chia sẻ kiến thức lập trình, đặc biệt là về JavaScript, Node.js, NestJS, và các công nghệ backend/frontend hiện đại. Trên blog này, mình thường xuyên đăng tải các bài viết thủ thuật, kinh nghiệm thực chiến, ví dụ minh họa dễ hiểu, giúp bạn tiếp cận và hiểu sâu các khái niệm tưởng như phức tạp trong lập trình.

0 Comments: