一、问题点:

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. #ifdef 支持Mac #ifndef 支持Windows #if defined (Q_OS_WIN) 应该可以再两个系统通用

    //mac qt可以运行 #ifdef Q_OS_MAC qDebug()<<QSysInfo::MacintoshVersion; #endif //Mac不运行 #ifndef Q_O ...

  2. 【转载】漫谈C++:良好的编程习惯与编程要点

    原文: 漫谈C++:良好的编程习惯与编程要点 阅读目录 以良好的方式编写C++ class Class with pointer member(s):记得写Big Three static与类 正文 ...

  3. 【BZOJ4566】[HAOI2016]找相同字符

    [BZOJ4566][HAOI2016]找相同字符 题面 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两个子串中有一个位置不同. 其中\(1\le ...

  4. 4825: [Hnoi2017]单旋

    4825: [Hnoi2017]单旋 链接 分析: 以后采取更保险的方式写代码!!!81行本来以为不特判也可以,然后就总是比答案大1,甚至出现负数,调啊调啊调啊调~~~ 只会旋转最大值和最小值,以最小 ...

  5. flume 安装过程记录

    1.安装jdk 2.下载安装包 : apache-flume-1.7.0-bin.tar.gz 安装包是在win下载的,需要拖动到ubuntu下的/home/hadoop (拖动不了需要先安装  lr ...

  6. C#之#if #endif的简单用法

    有时候我们看到别人的代码中有#if #endif,其实这是通过不同版本来选择运行哪段代码,和咱们的if,else是一样的.下面看下简单的用法 #if DEBUG txt_display.Text = ...

  7. 搜索引擎ElasticSearch系列(二): ElasticSearch2.4.4 Head插件安装

    一:ElasticSearch Head插件简介 elasticsearch-head is a web front end for browsing and interacting with an  ...

  8. 2019年猪年颁奖典礼、公司年会、跨年晚会、科技会议、年终答谢会之幕布背景展板PSD模板-第三部分

    16套--2019年猪年颁奖典礼.公司年会.跨年晚会.科技会议.年终答谢会之幕布.背景和展板PSD模板,免费颁奖典礼PSD展板背景幕布,下载地址:百度网盘,https://pan.baidu.com/ ...

  9. eclipse Unable to read repository 花了三天时间,吐血解决

    安装eclipse 的 swt examples插件时出现这个错误 查了三天,发现就是网速太慢,导致下载一半下不动出错,原因大概是因为国外吧 于是想看看能不能通过离线安装插件包的方式 问题来了,插件包 ...

  10. 概念这种东西--node.js

    概念是一个既简单又复杂.既招人爱又招人恨的东西.概念是对一事务或现象的抽象.抽象好了,那就太方便问题的解决了,抽象坏了,那就驴唇不对马嘴,反而会让逻辑一塌糊涂.现实中经常有这样的概念:东北人怎么怎么样 ...