当前位置: 代码迷 >> ASP.NET >> 怎么抓取ajax数据 急
  详细解决方案

怎么抓取ajax数据 急

热度:7458   发布时间:2013-02-25 00:00:00.0
如何抓取ajax数据 急~~~
//要抓取的URL地址
  string UrlBank = "http://www.bankrate.com.cn/bankoutlets/1";
  string strResultBank = GetWebContent(UrlBank);
  //取出和数据有关的那段源码
  int iBodyStartBank = strResultBank.IndexOf("<body", 0);
  int iStartBank = strResultBank.IndexOf("中国建设银行省份网点", iBodyStartBank);
  int iTableStartBank = strResultBank.IndexOf("<div", iStartBank);
  int iTableEndBank = strResultBank.IndexOf("</div>", iTableStartBank);
  string strWebBank = strResultBank.Substring(iTableStartBank, iTableEndBank - iTableStartBank + 8);
   
  //生成HtmlDocument
  WebBrowser webbBank = new WebBrowser();
  webbBank.Navigate("about:blank");
  HtmlDocument htmldocBank = webbBank.Document.OpenNew(true);
  htmldocBank.Write(strWebBank);
  HtmlElementCollection htmlTRBank = htmldocBank.GetElementsByTagName("a");
  foreach (HtmlElement tr in htmlTRBank)
  {
  strCity = tr.OuterText;
  strCity = strCity.Substring(0, strCity.Length - 1);
  }


我做了一个实例,以上这段代码可以抓取到html 所有源码,并可以获取我想要的数据
现在问题是我要抓取这里面的数据 http://www.bankrate.com.cn/creditcard/10_2 
可是查看源码后如“主卡年费”显示的是0(<td class="td_data_left td_bg">主卡年费</td>
  <td class="content ajaxdata">0</td>)这里正确的应该是“免费”,这样我就纳闷了,
我如果才能得到真正的数据呢,谢谢各位支招


------解决方案--------------------------------------------------------
string=="0"?"免费":string
------解决方案--------------------------------------------------------
估计页面加载完了,用js处理了。楼主手动处理吧
------解决方案--------------------------------------------------------
探讨
估计页面加载完了,用js处理了。楼主手动处理吧

------解决方案--------------------------------------------------------

------解决方案--------------------------------------------------------
多测试几下,找找规律,不一定全都的取到。
------解决方案--------------------------------------------------------
mark!最近也在做这方面的。
------解决方案--------------------------------------------------------
正则表达式匹配。。。
------解决方案--------------------------------------------------------
你看看源代码
C# code
<script type="text/javascript">loadContent('http://code.bankrate.com.cn/getProductData/creditcard_10_2');</script>秘密就是http://code.bankrate.com.cn/getProductData/creditcard_10_2这个是抓取你所需数据的真实URL当然,很多网站都进行了referer来源判断,所以抓取时,还要模拟httpreferer既然你会抓取网站,如何模拟就不多说了.
  相关解决方案