C# WebBrowser控件 模拟登录 抓取数据
一、问题点:
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控件 模拟登录 抓取数据的更多相关文章
- C# WebBrowser控件模拟登录
一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容,可以直接指定iframe抓取网址 2.C# 清除WebBrowser控件的Session和Cookie 参考文档 ...
- php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。
这两天有基友要php中curl抓取教务处成绩的源码,用于微信公众平台的开发.下面笔者只好忍痛割爱了.php中CURL技术模拟登陆抓取数据实战,抓取沈阳工学院教务处学生成绩. 首先,教务处登录需要验证码 ...
- 基于puppeteer模拟登录抓取页面
关于热图 在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine) 上图中能很清晰的看到用户关注点在那,我们不 ...
- php curl模拟登陆抓取数据
http://www.cnblogs.com/zengguowang/p/6814474.html
- 在.net中修改Webbrowser控件的IE版本
根据32位.64位系统来分别修改对应的注册表路径的键值对,不需要重启程序. /// <summary> /// 修改Webbrowser控件模拟的IE版本 /// </summary ...
- PHP Curl模拟登录并抓取数据
使用PHP的Curl扩展库可以模拟实现登录,并抓取一些需要用户账号登录以后才能查看的数据.具体实现的流程如下(个人总结): 1. 首先需要对相应的登录页面的html源代码进行分析,获得一些必要的信息: ...
- PHP获取cookie、Token、模拟登录、抓取数据、解析生成json
本文介绍使用PHP获取cookie,获取Token.以及模拟登录.然后抓取数据.最后解析生成json的的过程. 0. 设置Cookie路径 set_time_limit(0); //使用的cookie ...
- C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录
最近学习C#网络编程中,想实现网页自动登录并提交GET/POST信息,再实现循环登录不断发送报文给服务器,服务器发送消息给客户端记录能登录的账户和密码,做到后面实现绕过验证码.动态抓取登录位置等,但由 ...
- VC++使用WebBrowser控件,强制给控件指定版本显示网页
转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...
随机推荐
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RA ...
- 对Get-Content参数-readcount的解释
绝大多数用户更关心最新的日志,下面给出一个简单的例子演示从一个文本日志中获取最后的某几行文本行: # 显示windowsupdate.log 文件的最新5行日志 $logs = Get-Conte ...
- YII2.0 secruity
保存密码不能用明文保存,用MD5或者sha1哈希化是安全,但是随着硬件的发展,可能会暴力破解,目前能够对抗暴力破解的哈希算法是 bcrypt,Yii提供了两个帮助函数使用crypt进行安全的哈希加密 ...
- Scrum会议10(Beta版本) 补交
组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...
- PHP+jQuery 注册模块的改进之一:验证码存入SESSION
/* ******* Date:2014-09-28 ******* Author:小dee ******* Blog:http://www.cnblogs.com/dee0912/*/ 对上一篇博文 ...
- Strong AI Versus Weak AI
Computer Science An Overview _J. Glenn Brookshear _11th Edition The conjecture that machines can be ...
- 关于优化sql查询的一个方法。
select * from gmvcsbase.base_file file,gmvcsbase.base_user user,gmvcsbase.base_department dep,gmvcsb ...
- 使用JSONP跨域请求数据
下面代码,可以使用JSONP进行跨域请求数据,Insus.NET记录以下,以备忘记.
- spark之combineByKey
combineByKey def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombi ...
- transform animation transition css3动画
transform 定义 transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 值 应用 如果transform与transition联合起 ...