ajax抓取网页内容(网页有相当一部分的技术简单一点讲就是事件驱动吧())

优采云 发布时间: 2022-04-07 16:26

  ajax抓取网页内容(网页有相当一部分的技术简单一点讲就是事件驱动吧())

  原C#抓取AJAX页面内容

  目前相当一部分网页使用了AJAX技术。所谓AJAX技术,就是简单的事件驱动(当然,这种说法可能并不全面)。提交网址后,服务器给你发送的不是全部都是页面内容,但很大一部分是JS脚本,可以使用了

  但是我们用IE浏览页面是正常的,所以唯一的解决办法就是使用WebBrowser控件

  但是使用Webbrowser你会发现,在DownloadComplete事件中,你根本无法知道页面是什么时候真正加载的!

  当然,带有 Frame 的单个网页可能会触发多次 Complete。即使在Navigated事件中使用了计数器方法,即++和--在DownloadComplete中,执行完JS后仍然无法得到结果。一开始我也觉得很奇怪,直到后来GG相关的AJAX文章,明白原因了。

  最终的解决方案是使用WebBrowser+Timer来解决爬取页面的问题

  关键还是页面状态,我们可以使用webBrowser1.StatusText,如果返回“完成”,说明页面加载完毕!

  示例代码如下:

  private void timer1_Tick(object sender, EventArgs e)

  {

  webBrowser1.导航(Url);

  if (webBrowser1.StatusText == "Done")

  {

  定时器1.启用=假;

  //页面加载完毕,做点别的事情

  }

  }

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线