</div><div>a {</div><div> color: green;</div><div> font-family: arial;</div><div> font-weight: bold</div><div>}</div><div>
</div><div>/* Jerry 2017-02-06 14:58PM update</div><div> should use C:\MyApp\Chrome\Application\chrome.exe --user-data-dir="C:/yaas" --disable-web-security</div><div> and then FIRST LOG ON BAIDU successfully!!!!</div><div>*/</div><div>
</div><div>/* Jerry 2017-02-05 5:54PM</div><div>这个警告的意思是说:请求的资源可能会被(扩展/或其他什么机制)屏蔽掉。</div><div>之所以会出现这个警告,是因为去获取该资源的请求其实并(还)没有真的发生,所以 Header 里显示的是伪信息,直到服务器真的有响应返回,这里的 Header 信息才会被更新为真实的。不过这一切也可能不会发生,因为该请求可能会被屏蔽。比如说 AdBlock 什么的,当然了不全是浏览器扩展,具体情况具体分析了。</div><div>对了,别忘了用 chrome://net-internals 来帮助你查找被屏蔽的请求以及可能的原因。</div><div>*/</div><div>var PREFIX = "http://tieba.baidu.com";</div><div>var START = "http://tieba.baidu.com/i/i/my_tie";</div><div>//var START = "http://www.baidu.com";</div><div>var POST = {};</div><div>var TOTAL = 0;</div><div>var SORTED = [];</div><div>function getTotalCount(collection){</div><div> var count = 0;</div><div> for( bar in collection){</div><div> if( !collection.hasOwnProperty(bar))</div><div> continue;</div><div> var postList = collection[bar];</div><div> count += postList.length;</div><div> }</div><div> return count;</div><div>}</div><div>function shouldEnd(previousCount) {</div><div> TOTAL = getTotalCount(POST);</div><div> console.log("pre: " + previousCount + " total: " + TOTAL);</div><div> return ( previousCount == TOTAL );</div><div>}</div><div>function main() {</div><div> var html = getPostByAJAX(START);</div><div> handleLiChildren(html);</div><div> var page = 2;</div><div> while(1){</div><div> var prevCount = getTotalCount(POST);</div><div> var task = START + "?&pn=" + page;</div><div> var html = getPostByAJAX(task);</div><div> handleLiChildren(html);</div><div> page++;</div><div> /*</div><div> if( page >=2 )</div><div> break;*/</div><div> if( shouldEnd(prevCount) )</div><div> break;</div><div> }</div><div> sort();</div><div> generate();</div><div>}</div><div>function handleLiChildren(resultString){</div><div> var htmlDom = $(resultString);</div><div> var liChildren = $("li", htmlDom);</div><div> $.each( liChildren, function(i, value) {</div><div> // if( value.className.indexOf("nav_item") != -1 )</div><div> if( value.className)</div><div> return true;</div><div> if( value.innerText == "我回复的" || value.innerText == "我的精品")</div><div> return true;</div><div> var detail = parseDetail(value);</div><div> insertPost(detail);</div><div> });</div><div>}</div><div>/*</div><div><ul></div><div> <li></div><div> <cite>2016</cite></div><div> <a href="/f?kw=%E5%A4%A7%E9%82%91" >尿素氮</a></div><div> </li></div><div> <li></div><div> <cite>2015</cite></div><div> <a href="/f?kw=%E5%A4%A7%E9%82%91" >尿素氮2</a></div><div> </li></div><div></ul></div><div>*/</div><div>function getpostSource(post) {</div><div> var source = "<li><cite>";</div><div> source += post.date + "/<cite>";</div><div> source += '<a href="' + post.url + '">' + post.postTitle + "</a></li>";</div><div> return source; </div><div>}</div><div>function getBarPostsSource(barName, posts) {</div><div> var source = '<h1>' + barName + ': ' + posts.length + '个</h1>';</div><div> source += "<ul>";</div><div> for( var i = 0; i < posts.length; i++){</div><div> var post = posts[i];</div><div> source += getpostSource(post);</div><div> }</div><div> source += "</ul>";</div><div> return source;</div><div>}</div><div>function sortNumber(a,b){</div><div> return b.size - a.size; </div><div>}</div><div>function sort() {</div><div> for( barName in POST) {</div><div> if( !POST.hasOwnProperty(barName))</div><div> continue;</div><div> var post = {</div><div> name: barName,</div><div> size: POST[barName].length</div><div> };</div><div> SORTED.push(post);</div><div> }</div><div> SORTED.sort(sortNumber);</div><div>}</div><div>function generate(){</div><div> var div = document.getElementById("container");</div><div> var source = "总共帖子: " + TOTAL + "个";</div><div> for( var i = 0; i < SORTED.length; i++){</div><div> var posts = POST[SORTED[i].name];</div><div> source += getBarPostsSource(SORTED[i].name, posts);</div><div> }</div><div> div.innerHTML = source;</div><div>}</div><div>$(function(){ </div><div> main();</div><div>}); </div><div>function getPostByAJAX(requestURL){</div><div> var html = $.ajax({</div><div> url: requestURL,</div><div> xhrFields: {</div><div> // The 'xhrFields' property sets additional fields on the XMLHttpRequest.</div><div> // This can be used to set the 'withCredentials' property.</div><div> // Set the value to 'true' if you'd like to pass cookies to the server.</div><div> // If this is enabled, your server must respond with the header</div><div> // 'Access-Control-Allow-Credentials: true'.</div><div> withCredentials: true</div><div> },</div><div> async: false}).responseText; </div><div> debugger;</div><div> return html;</div><div>}</div><div>/*</div><div>function getPostByAJAX(requestURL){</div><div> var settings = {</div><div> type: "GET",</div><div> crossOrigin: true,</div><div> url:requestURL,</div><div> error: function(XHR,textStatus,errorThrown) {</div><div> alert ("XHR="+XHR+"\ntextStatus="+textStatus+"\nerrorThrown=" + errorThrown);</div><div> },</div><div> success: function(data,textStatus) {</div><div> debugger;</div><div> },</div><div> headers: {</div><div> "Access-Control-Allow-Origin":"http://tieba.baidu.com",</div><div> "Access-Control-Allow-Headers":"X-Requested-With"</div><div> }</div><div> };</div><div> $.ajax(settings);</div><div>}</div><div>*/</div><div>/*</div><div>function getPostByAJAX(requestURL){</div><div> var html = $.ajax({</div><div> url: requestURL,</div><div> dataType:"jsonp",</div><div> xhrFields: {</div><div> // The 'xhrFields' property sets additional fields on the XMLHttpRequest.</div><div> // This can be used to set the 'withCredentials' property.</div><div> // Set the value to 'true' if you'd like to pass cookies to the server.</div><div> // If this is enabled, your server must respond with the header</div><div> // 'Access-Control-Allow-Credentials: true'.</div><div> withCredentials: true</div><div> },</div><div> async: false}).responseText; </div><div> return html;</div><div>}</div><div>*/</div><div>function insertPost(postDetail){</div><div> if( !POST[postDetail.barName]){</div><div> POST[postDetail.barName] = [];</div><div> }</div><div> POST[postDetail.barName].push(postDetail);</div><div>}</div><div>function parseDetail(liNode) {</div><div> var cite = $("cite", liNode);</div><div> var date = cite[0].innerHTML; // value1</div><div> var tds = $("td", liNode);</div><div> var a1 = $("a", tds[0]);</div><div> var barName = a1[0].innerHTML; // value2</div><div> var a2 = $("a", tds[1]);</div><div> var postTitle = a2[0].innerHTML; // value3</div><div> var url = PREFIX + a2.attr("href");</div><div> return {</div><div> date: date,</div><div> barName: barName,</div><div> postTitle: postTitle,</div><div> url: url</div><div> }</div><div>}</div><div>function getTestData(){</div><div> return '<!DOCTYPE html><html><body><div class="wrap1"><div class="wrap2"><div ' + </div><div> ' id="main_wrapper" class="main_wrapper"><div id="main_back_img"><div ' + </div><div> ' id="main_back_bottom"><div id="container" class="ibody clearfix"><div><div ' + </div><div> ' id="content"><div class="simple_block_container"><ul><li><cite>2-16</cite>' + </div><div> '<div class="wrap_container"><table><tr><td class="nowrap">在<a style="" ' +</div><div> ' href="/f?kw=%E5%A4%A7%E9%82%91" target="_blank">ANDROID吧</a> 发贴</td><td class="wrap">' + </div><div> '<a href="/p/4356641476?pid=84106363194&cid=0#841063631" class="thread_title" target="_blank">硬盘</a></td>' +</div><div> '</tr></table></div><div class="clear"></div></li>' + </div><div> '<li></li><li></li></ul></div></div></div></div></div></div></div></div></body></html>';</div><div>}</div><div>