Banner

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

Cách trích xuất thông tin của một bài đăng từ nguồn cấp dữ liệu feeds của Blogger bằng JavaScript


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


Liên hệ Zalo