这是淘宝指数的一个网页,需要用淘宝账号登陆才能查看:
http://shu.taobao.com/top/50002766/search
我想用C#写个简单的采集程序,可是无法获取到数据。我用WebBrowser实例化一个wb加载网址,然后在DocumentCompleted事件中获取wb.Document.Body.InnerHtml。可是获取过来的内容只包含页眉和页脚,关键数据没有获取到。获取到的数据如下:
<div id="nav"> 
</div>
<script>
(function(){
  var reloadNewPage = function () {
    ALIYUNSM.reloadUA();
    if ($.cookie('sc5')) {
      $.cookie('sc7', '1', {path: '/'});
      location.reload();
    } else {
      setTimeout(reloadNewPage, 25);
    }
  }
  setTimeout(reloadNewPage, 25);
})();
</script>
<footer class="footer">可通过浏览器查看源码应该是这样的:<div id="nav"> 
</div>
<div class="page-main clearfix">
//省略……
</div><footer class="footer">这个好像是动态加载的,就在那个<script>脚本的位置加载的数据,不知道这是通过哪种方式加载,需要通过何种方式才能正确采集,请高手指点一下。

解决方案 »

  1.   

    你要得到指数列表?
    最简单的方式就是fiddle,wireshark抓包,然后playback获取数据,嘿嘿
      

  2.   

    那数据肯定是ajax的呀,用fiddler抓包卡看ajax地址是多少,然后模拟请求~~~
      

  3.   

    解决啦,其实只需要我用WebBrowser实例化一个wb加载网址,然后在DocumentCompleted事件中设置一个timer让他延迟三秒钟再去获取wb.Document.Body.InnerHtml。这样异步加载的内容全部加载完毕。8万+数据采集成功啦!
      

  4.   

    我也是做采集的 qqmial:[email protected] 
    有时间切磋下 哈哈