ACMer博客瀑布流是一个专门收集ACMer博客并展示的站点。地址http://blog.acmicpc.info/
打开网页之后直接查看源代码发现
1function entry2html(entry) { 2 var html = ''; 3 html += '<div class="box" id="entry-' + entry.rss_entry_id + '">'; 4 html += '<div class="entry-title">'; 5 html += '<a onclick="click_entry(' + entry.rss_entry_id + ')" href="' + entry.link + '" target="_blank">' + entry.title + '</a>'; 6 html += '</div>'; 7 html += '<div class="entry-time">'; 8 html += entry.crawled; 9 html += '</div>'; 10 html += '<div class="entry-author">'; 11 html += '<a href="' + entry.author_link + '" target="_blank"> '; 12 html += entry.author_name; 13 html += '</a>'; 14 html += '</div>'; 15 html += '<div class="entry-summary">'; 16 html += entry.summary; 17 html += '</div>'; 18 html += '<div style="float:right;">'; 19 html += ' <span style="cursor:pointer" onclick="like_entry(' + entry.rss_entry_id + ')"><i class="icon-heart"></i>喜欢(<span class="like_num">' + entry.like + '</span>)</span> '; 20 html += '</div>'; 21 html += '<div style="float:left;">'; 22 html += ' <span><i class="icon-search"></i><span class="click_num">' + entry.click + '</span>人阅读</span> '; 23 html += '</div>'; 24 html += '</div>'; 25 return html; 26}
很明显,网页中的html代码都是由这个函数来生成的。再搜索一下源代码中什么地方调用的这个函数。
1function append_entries() { 2 if (stop) return; 3 4 $('#load-entry-tip').show(); 5 6 $.ajax( { 7 dataType : 'json', 8 url : 'ajax_entry.php?from=' + from, 9 success : function(data) { 10 var html = ''; 11 // alert(data); 12 13 14 $('#load-entry-tip').hide(); 15 16 if (data.length == 0) { 17 stop = true; 18 $('#load-entry-tip').html('您看得太多了,休息会吧'); 19 $('#load-entry-tip').show(); 20 return; 21 } 22 23 $.each(data, function(i, entry) { 24 html += entry2html(entry); 25 }) 26 var dboxes = $(html); 27 $('div#container').append(dboxes).masonry('appended', dboxes); 28 29 scroll_lock = false; 30 } 31 }) 32 33 from = from + 1; 34 35}
在这里面出现了$.ajax()方法,很明显html页面就是通过调用$.ajax()去向后台接口获取数据的。
于是就暴露出了后台接口的地址了
url : 'ajax_entry.php?from=' + from,
整理一下就是
http://blog.acmicpc.info/ajax_entry.php?from=0