用xmlhttp获取百度贴吧的帖子列表

上一篇 / 下一篇  2007-12-27 15:30:12 / 个人分类:悠闲生活

百度的贴吧没有提供rss聚合,使得其他网站很难取得帖子列表。所以想在自己的门户上列出某个贴吧最新的帖子列表,看来得另想办法。

获取其他网站的内容最简单的办法就是获取html代码,然后从中分离出想要的内容。要想获取html代码那就离不开xmlhttp了,可是一个贴吧首页的代码量少说也有几十K,读取全部代码再分离,效率堪忧。只好另辟蹊径——用Wap站的贴吧。代码量少,只有几K,分析起来也比较容易。唯一不足的就是wap一页只有十条记录。

不废话了,看代码。正则表达式写得太烂了,见谅!

<script   type="text/javascript">
function createXMLHttpRequest(){
    if (window.ActiveXObject)
    {
        xmlHttp   =   new   ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest)
    {
        xmlHttp   =   new   XMLHttpRequest();
    }
}

function startRequest(){
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET","http://wapp.baidu.com/f?kw=金蝶",true);
    xmlHttp.send(null);
  }

function handleStateChange(){
    if(xmlHttp.readyState == 4)
 {
    if(xmlHttp.status == 200)
        {
            result = xmlHttp.responseText;
   DeelResult(result);
        }
    }
}

function DeelResult(str){
    str = str.substring(str.indexOf("<br/>"),str.indexOf("<a accesskey"));
    var re = /z=(.+?)[&]/g;
    id = str.match(re);
    var re = /["]>(\s+.)(.+?)</g;
    txt = str.match(re);
    inner="";
    for (i=0;i<10 ;i++ )
        {
            inner += "<a target=\"_blank\" href=\"http://tieba.baidu.com/f?k"+id[i]+txt[i]+"/a><br>";
        }
    document.getElementById("results").innerHTML = inner;
}
startRequest();
</script>
<div id="results" ></div>


TAG:

光明顶 引用 删除 萧秋水   /   2007-12-27 19:39:07
元霄真强!
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 1230
  • 日志数: 17
  • 图片数: 1
  • 建立时间: 2007-12-06
  • 更新时间: 2008-07-23

RSS订阅

Open Toolbar