码迷,mamicode.com
首页 > Windows程序 > 详细

C# 引用SHDocVw 实现模拟网页操作

时间:2015-12-31 12:27:13      阅读:610      评论:0      收藏:0      [点我收藏+]

标签:

因为最近项目需要,所以接触到了网页爬取。

  • 1. HttpWebRequest

    初期接触的都是一些比较简单的网页,

  • 2. WebBrower控件

    后面接触到一些复杂的网页,模拟登录一套比较难时限,所以采用了webbrower控件,直接用户手动登录,登录后程序再自动完成后续操作。

  • 3. SHDocVw.InternetExplorer

    这个在网上搜索一下有很多,一些基本操作都有提到,如:获取IE、打开指定URL、获取控件、执行控件click、执行JS等。

    但要实现自动化,一个最重要的就是判断当前页面加载完毕,这个网上提及到的比较少,下面是在网上辛苦搜集的一些方法:

  1. ReadyState

判断到ReadyState==tagREADYSTATE.READYSTATE_COMPLETE,则是加载完成。

但是在实际使用过程中有些情况(比如某些页面的form提交查询)ReadyState是不会发生变化的,及状态一直是complete,所以此种判断不准确。

  1. StatusText

判断StatusText是否包含“完成 ”,如果包含则说明页面加载完成,不包含则未加载完成。

  1. DocumentComplete事件   

当页面完成加载的时候都会触发DocumentComplete事件,所以我们可以通过DocumentComplete设置信号量来实现。但此方法不能判断iframe是否加载完毕。

C# 引用SHDocVw 实现模拟网页操作

标签:

原文地址:http://www.cnblogs.com/JemmyChou/p/5091130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!