ajax抓取网页内容(IE浏览页面何时才算是真正的加载完毕?(图))

优采云 发布时间: 2021-09-20 21:20

  ajax抓取网页内容(IE浏览页面何时才算是真正的加载完毕?(图))

  当前web页面的相当一部分使用ajax技术。无论在c#中使用webclient还是httprequest,都无法获得正确的结果,因为这些脚本是在服务器发送它们之后执行的

  然而,我们使用ie浏览页面是正常的,所以只有一个解决方案是使用WebBrowser控件

  但是使用WebBrowser,您会发现在downloadcomplete事件中,您根本无法知道页面何时真正加载

  当然,带有框架的单个网页可能会多次触发complete。即使在导航事件中使用counter方法,即++,在downloadcomplete中使用do-,在JS完成后仍然无法获得结果。起初我觉得很奇怪,直到GG来到Ajax文章,明白了原因

  最终的解决方案是使用WebBrowser+定时器来解决抓取页面的问题

  关键仍然是页面状态,我们可以使用它webBrowser1.Statustext,如果返回“complete”,则表示页面已加载

  示例代码如下所示:

  private void timer1_Tick(object sender, EventArgs e)

{

textBox1.Text += webBrowser1.StatusText;

if (webBrowser1.StatusText == "完成")

{

timer1.Enabled = false;

//页面加载完成,做一些其它的事

textBox1.Text += webBrowser1.Document.Body.OuterHtml;

//webBrowser1.DocumentText 注意不要用这个,这个和查看源文件一样的

}

}

private void Form1_Load(object sender, EventArgs e)

{

string Url = "http://cd.mei8.cn/face/work/windex.aspx?btn=6";

webBrowser1.Navigate(Url);

}

  放置三个控件。将WebBrowser、计时器和文本框计时器设置为可用

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线