一、问题点:

1、模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容,可以直接指定iframe抓取网址

2、C# 清除WebBrowser控件的Session和Cookie

参考文档:http://www.360doc.com/content/14/0810/12/9200790_400769010.shtml

代码如下:

        [DllImport("wininet.dll",SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); private void timer_Tick(object sender, EventArgs e)
{
InternetSetOption(IntPtr.Zero,,IntPtr.Zero,);
if (this.webBrowser.Document != null)
{
this.webBrowser.Document.Cookie.Remove(, this.webBrowser.Document.Cookie.Count() - );
}
string[] cookies = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies));
foreach (string currentFile in cookies)
{
try
{
System.IO.File.Delete(currentFile);
}
catch { }
}
this.webBrowser.Navigate(SysInfo.WEBURL);
}

3、IHTMLDocument2 的引用 引用--COM--Microsoft HTML Object Library

二、模拟登录

模拟无验证码登录,用WebBrowser比较简单,为登录用户和密码赋值,然后模拟点击登录按钮即可

                    this.webBrowser.Document.GetElementById("user").SetAttribute("value", "user");
this.webBrowser.Document.GetElementById("password").SetAttribute("value", "password");
this.webBrowser.Document.InvokeScript("SetCookie");
for (int i = ; i < ; i++)//等待1秒,进行登录
{
Thread.Sleep();
}
HtmlElement btnLogin = this.webBrowser.Document.GetElementById("login");
btnLogin.InvokeMember("Click");
for (int i = ; i < ; i++)//等待0.5秒,进行跳转
{
Thread.Sleep();
}
this.webBrowser.Navigate(SysInfo.DATAURL);

三、抓取数据

指定抓取网址,载入之后,获取元素值

HtmlElement div = this.webBrowser.Document.GetElementById("style1");

参考博客:C#中的WebBrowser控件的使用

参考博客:C#中利用WebBrowser控件,获得HTML源码

C# WebBrowser控件模拟登录的更多相关文章

  1. C# WebBrowser控件 模拟登录 抓取数据

    参考博客:C#中的WebBrowser控件的使用 参考博客:C#中利用WebBrowser控件,获得HTML源码 一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容 ...

  2. 在.net中修改Webbrowser控件的IE版本

    根据32位.64位系统来分别修改对应的注册表路径的键值对,不需要重启程序. /// <summary> /// 修改Webbrowser控件模拟的IE版本 /// </summary ...

  3. C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录

    最近学习C#网络编程中,想实现网页自动登录并提交GET/POST信息,再实现循环登录不断发送报文给服务器,服务器发送消息给客户端记录能登录的账户和密码,做到后面实现绕过验证码.动态抓取登录位置等,但由 ...

  4. C# Winform WebBrowser控件

    C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...

  5. C#中的WebBrowser控件的使用

    0.常用方法   Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...

  6. C# WebBrowser控件使用教程与技巧收集

    常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(strin ...

  7. C#WebBrowser控件使用教程与技巧收集--苏飞收集

    C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...

  8. VC++使用WebBrowser控件,强制给控件指定版本显示网页

    转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...

  9. 009. C#中的WebBrowser控件的属性、方法及操作演示代码(转)

    本文转自 http://www.open-open.com/code/view/1430559996802 0.常用方法 Navigate(string urlString):浏览urlString表 ...

随机推荐

  1. 向大学说拜拜——大学 > 兴趣 + 时间 + 思考 + 实践

    [人物素描] 大学期间,担任过班委,加入过学生会,参加过社团,拿过奖学金......而印象最深刻的莫过于参加并组织过ACM集训,以及参加过导师的国家自然科学基金项目了.毕业时顺利拿到一波offer,并 ...

  2. 跨越适配&性能那道坎,企鹅电竞Android weex优化

    WeTest 导读 企鹅电竞从17年6月接入weex,到现在已经有一年半的时间,这段时间里面,针对遇到的问题,企鹅电竞终端主要做了下面的优化: image组件 预加载 预渲染 Image组件 weex ...

  3. 韦大仙--LoadRunner压力测试:详细操作流程

    一. 录制脚本 1.安装完毕后,创建脚本: 点击OK之后,会弹出网址,之后创建Action,每进一个页面添加一个Action,录制结束后,终止录制. 二. 修改脚本 1.脚本参数化 将登录的用户名密码 ...

  4. url乱码问题

    //url乱码,有时候要解码2次才能成功 String url=URLDecoder.decode(URLDecoder.decode(returnUrl, "UTF-8"),&q ...

  5. Spring Boot 整合JDBC 实现后端项目开发

    一.前言 二.新建Spring Boot 项目 三.Spring Boot 整合JDBC 与MySQL 交互 3.1 新建数据表skr_user 3.2 Jdbcproject 项目结构如下 3.3 ...

  6. 【sed】常用命令

    替换 替换某一整行 sed '1c hello' test #将第一行替换为hello str1替换为str2 sed 's/^str1.*/str2/' filename #以str1开头 sed ...

  7. Teaching Machines to Understand Us 让机器理解我们 之三 自然语言学习及深度学习的信仰

    Language learning 自然语言学习 Facebook’s New York office is a three-minute stroll up Broadway from LeCun’ ...

  8. 启动sshd时,报“Could not load host key”错

    原文发表于cu:2016-05-24 现象:启动sshd服务时,虽看似服务启动成功,但客户端并不能连接上sshd服务器端.如下: [root@aefe8007a17d ~]# /usr/sbin/ss ...

  9. 在Windows2008下添加iscsi存储出现磁盘Offine(The disk is offine because of policy set by an adminstrator)的解决方法

    打开CMD命令行输入如下命令: DISKPART.EXE DISKPART> san SAN Policy : Offline Shared DISKPART> san policy=On ...

  10. mysql 5.5 zip配置安装

    1.解压2.创建option文件 --defaults-file=../my.ini [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mys ...