Trích xuất nội dung bài viết từ nguồn cấp blog

Trích xuất nội dung bài viết từ nguồn cấp blog là cách bạn sẽ viết script tìm thứ cần lấy sau đó ráp lại thành bố cục hiển thị một bài viết hoàn chỉnh. Khi viết bài bạn thêm nội dung gì thì nguồn cấp của bài đăng đó đều lưu trữ phần bạn đã thêm. Việc của bạn cần làm là chuyển đổi từ json sang html bằng script.

Mình chia sẻ code script tóm tắt dưới đây lấy nội dung bài viết từ nguồn cấp:


<script>//<![CDATA[

function get_data(data) {

  if (data.feed.entry) {

    for (var t = 0; t < data.feed.entry.length; t++) {

      var entry = data.feed.entry[t]

      // Liên kết

      for (var a = 0; a < entry.link.length; a++) {

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

          var entry_alternate = entry.link[a].href

          break

        }

      }

      // Liên kết tiêu đề

      for(var b = 0; b < entry.link.length; b++)

        if(entry.link[b].rel == 'related'){

          var entry_related = entry.link[b].href

          break

        }

      }

      // Liên kết đính kèm

      var entry_enclosure = ''

      for (var c = 0; c < entry.link.length; c++) {

        if(entry.link[c].rel == 'enclosure'){

          entry_enclosure = entry.link[c].href

        }

      }

      // Tiêu đề

      var entry_title = entry.title.$t

      // Link ảnh

      if ('media$thumbnail' in entry) {

        // Link ảnh

        var entry_thumb = entry.media$thumbnail.url.replace('s72-c', 's1600')

      } else {

        var st = entry.content.$t,

          at = st.indexOf("<img"),

          bt = st.indexOf('src="', at),

          ct = st.indexOf('"', bt + 5),

          dt = st.substr(bt + 5, ct - bt - 5)

        if (at != -1 && bt != -1 && ct != -1 && dt != "") {

          entry_thumb = dt

        } else {

          // Link ảnh thay thế nếu bài viết không có ảnh

          entry_thumb = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicom5ntKgTWGzgmdIHzjPlfHNVWNq4klBolXTvLX9F7NpqM5y8JycOm4rpOMw9Oqa_jc1b0pKbcuF8woymvw6rNd0AxTWpb7IWQtM7ZZKEw3RzBZHTlrc6zBZSALaGHC8R2naxcWcsgODP/s1600/safe_image.png'

        }

      }

      // Tác giả

      if ('author' in entry) {

        for (var i = 0; i < entry.author.length; i++) {

          // Tên tác giả

          var entry_author_name = entry.author[i].name.$t,

            entry_author_image = entry.author[i].gd$image.src // Link ảnh tác giả

          // Liên kết hồ sơ

          if (entry.author[i].uri) {

            var entry_author_uri = entry.author[i].uri.$t

          } else {

            entry_author_uri = 'javascript:void(0)'

          }

        }

      }

      // Ngày xuất bản

      var entry_published_date = entry.published.$t.substring(8, 10), // Ngày

      entry_published_month = entry.published.$t.substring(5, 7), // Tháng

      entry_published_year = entry.published.$t.substring(0, 4), // Năm

      entry_published = entry.published.$t.substring(8, 10) + '/' + entry.published.$t.substring(5, 7) + '/' + entry.published.$t.substring(0, 4)

      // Lấy danh sách Nhãn

      if ('category' in entry) {

        var label_name = '',

          label_all=''

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

          // Tên Nhãn cuối

          label_name = entry.category[k].term

          // Tất cả Nhãn

          label_all += entry.category[k].term

        }

      }

      // Lấy đoạn trích tóm tắt

      if ('content' in entry) {

        var post_snippet = entry.content.$t, // Nội dung bài đăng

          snippets = 100,

          summary = '',

          re = /<\S[^>]*>/g,

          post_snippet = post_snippet.replace(re, "")

        if (post_snippet.length < snippets) {

          summary = post_snippet

        } else {

          post_snippet = post_snippet.substring(0, snippets)

          var quoteEnd = post_snippet.lastIndexOf(' '),

            entry_summary = post_snippet.substring(0, quoteEnd)

        }

      } else {

        entry_summary = ''

      }

      // Lấy số bình luận

      if ('thr$total' in entry) {

        var entry_comments = entry.thr$total.$t

      } else {

        entry_comments = 0

      }

      var contents = ''

      $(cate[i]).find('.widet-content').append(contents)

    }

  }

}

//]]></script>

Công việc của bạn chỉ đơn giản ráp vào đoạn var contents = '', ví dụ


var contents = '<div class="item"><div class="item-thumbnail"><a href='+ entry_alternate +' title="'+ entry_title +'"><img alt="'+ entry_title +'" src='+ entry_thumb +'></a></div><div class="item-title"><a href='+ entry_alternate +' title="'+ entry_title +'">'+entry_title+'</a></div><div class="item-meta"><span class="item-date">'+ entry_published +'</span><span class="item-label"><a class="label-name" href="/search/label/' + label_name + '" title="' + label_name + '">'+ label_name +'</a></span></div><div class="item-snippet"><p>'+entry_summary+'</p></div></div>'

Bài này mình viết tiếp theo bài Làm thế nào để tối ưu trang tải nhanh khi tải URL nguồn cấp? do đó các bạn cần đọc kỹ và làm theo bài viết đó kết hợp với bài này để trích xuất nội dung bài viết từ nguồn cấp blog.

Previous Post
Next Post

post written by:

0 Comments: