一、问题点:

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源码

最新文章

  1. c++调用lua环境配置
  2. 一个用react+nodejs实现的笔记本小应用
  3. Swift 3 新特性
  4. 如何更改magento后台地址
  5. 广告点击率 CTR预估中GBDT与LR融合方案
  6. OpenStack 多台计算节点时的问题
  7. javaWeb学习笔记
  8. 实例源码--Android软件更新模块
  9. unity 在安卓个IOS平台上 同一个按钮 点击后实现不同的功能
  10. 201521123070 《JAVA程序设计》第5周学习总结
  11. 单细胞参考文献 single cell
  12. JS如何判断一个数组是否为空、是否含有某个值
  13. Fantacy团队周四站立会议
  14. 4G模块*99#拨号上网
  15. 当父级绑定了DataContext之内的数据源时,子级想重新绑回DataContext
  16. A implementaion for 2D blue noise
  17. Hibernate第四天——查询方式
  18. 32个Chrome 针对网页设计师和开发人员扩展
  19. awk 截取某段时间的日志
  20. 转:介绍几个著名的实用的Java反编译工具,提供下载

热门文章

  1. Linux入门进阶第六天——登录文件、开机与模块管理
  2. ruby学习笔记(3)- 新手入门
  3. 见到Unicode、GB2312、GBK 、ANSI、Ascii、DBCS、BIG5、UTF这一堆名词你是否犯晕?请看转载的好文
  4. .NET core 项目部署在windows 服务器方法以及iis 访问报 500.19错误的解决办法
  5. luogu 2051 [AHOI2009]中国象棋
  6. 【Unity3d】ScriptableObject的简单用法
  7. Git之hotfix热修复分支
  8. MySQL数据库--连接
  9. 英特尔&#174; 实感™ 深度摄像头代码示例 – R200 摄像头数据流
  10. List Leaves 树的层序遍历