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

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

  • 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是否加载完毕。

时间: 2024-10-14 03:00:21

C# 引用SHDocVw 实现模拟网页操作的相关文章

c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇(转)

这一篇文章,我将从头到尾教大家使用c#模拟网页面登陆12306网站,自动刷票,选择订票人,到最后一步提交订单.研究过HTTP协议的童鞋们都 知道,我们在访问网站时,是有两种方式的,POST和GET方式,HTTP协议是TCP/IP的一部分,有兴趣的可以使用Socket通讯可以模拟出 HTTP的访问机制.我们再说POST和GET方式,在访问一个页面时,浏览器会提交一个本地cookie提交到网站服务器,cookie的作用可以是保 存我们登陆网站成功后取得的一串钥匙,也可以是其他的一些重要的信息.这是至

[python]利用selenium模拟用户操作抓取天猫评论数据

准备: python3.5 安装selenium包 第一种方法: cmd里输pip install selenium,但是经常报错 第二种方法: 下载安装包-cmd进入解压路径-python setup.py install-报错permission denied-右键安全更改报错文件夹权限为完全控制-再次安装成功unknown error: unable to discover open pages-下载chromedriver放在环境变量目录下测试自动打开百度时提示"您使用的是不受支持的命令

winform中webBrowser模拟网页操作中遇到的问题

我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说明的是文档是用Excel指定格式制成的表格,数据是通过循环表格数据行上传的. 需求是如果文档已经上传那么必须提示,但上传成功不必提示(因为循环上传的话会弹出很多提示框). 代码如下:添加引用 在扩展程序集中找到Microsoft.mshtmlusing mshtml; 在窗体类上面贴标签: [Com

使用vue2.0 vue-router vuex 模拟ios7操作

其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如果您觉得可以,麻烦给一个star,支持我一下. 之前接触过Angular1.0,React,都只是学点入门,但对于Vue却觉得很容易上手,不止入门简单,插件也是很丰富的,脚手架也是便利的很... 项目分析: 1.首屏滑动解锁,并能移动小圆点 2.主屏幕  长按图标抖动,删除图标,点击小圆点的主屏幕

【软件编程】乐易贵宾VIP教程 - JS改写+网页操作系列教程

JS改写系列教程: 1.MD5加密改写教程(爱拍网登录)2.解密如何快速找到真确的js加密算法3.多重MD5加密改写教程(5173登录)4.DZ论坛登录加密改写5.唯品会手机登录加密改写6.新浪微博密码加密改写7.迅雷登录JS加密改写8.QQ会员签到g_tk算法分析9.QQ快捷登录分析 网页操作教程: 1.了解网页操作的基本分类和定义2.了解抓包工具3.用IE自带的抓包工具进行抓包4.httpwatch的安装和使用5.利用网页填表实现简单的百度搜索功能6.利用post实现简单的百度搜索功能7.利

WebBrowser网页操作之提取获取元素和标签(完整篇)

最近使用WebBrower做了几个Hook小程序,收集积累如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms;// namespace WebBrowser网页操作 { public class Element { //根据Name获取元素 public HtmlElement GetElement_Name(Web

C#驱动级模拟按键操作

C#驱动级模拟按键操作 2013-09-26 03:17 ·AB叔 447 3 <- 点击左侧的数字“攒”一个吧 昨天遇到一个程序自动输入财付通密码的任务. 因为财付通密码控件是有安全保护的,所以不能通过传统的Keybd_event来操作. 网上找了很多资料,终于找到winio.dll这个端口操作驱动程序组件来解决这个难题. 首先是需要用C#封装winio.dll,让它变得更加好用. 我这里已经封装好了SupKey.dll 注意,我的环境是win2003 32位,63位或者其他版本的时候可能需要

Android 手机app 嵌入网页操作

1.主Activity的源代码: package com.jhtg.happyagent; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.W

Android随笔之——模拟按键操作的几种方式

前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之——使用Root权限实现后台模拟全局按键.触屏事件方法(类似按键精灵),这里我就直接上代码了. 1 package com.lsj.keyboardsample; 2 3 import android.app.Activity; 4 import android.app.Instrumentation;