前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原来webBrowser还可以这样用

原来webBrowser还可以这样用

原创
作者头像
谭广健
发布2022-05-17 17:42:55
6730
发布2022-05-17 17:42:55
举报
文章被收录于专栏:谭广健的专栏

最近在写一个网络爬虫,本来都基本完成了90%。但后来发现对象网站通过ajax来进行数据更新,当然其实这个我也早估到,因为这样就不用不停的刷页面;但估不到的竟然用SessionID进行验证并进行数据交换。即只有登录成功的SessionID才可以进行数据获取,更奇特的是他是xml,这个也算了并且xml不是直接全部数据显示出来,有时候甚至没有一点,,哎,搞了一大轮想到的办法是建一个Sqlite数据库和读XML的控件,进行读取。。就这样搞了一半,突然想到一个webBrowser控件,这个控件先模拟登陆然后再在webBrowser中读取相关的html,而本来计划是监控webBrowser获取其连接,但看了一下这样也比较复杂,主要是要读xml然后写数据库,这样费力。。后来,想到既然能读出HTML那么我们可以把HTML保存为HTML,让接口读就是了。。预是就开始了这篇。

先说读取吧,读取比较简单“this.webBrowser1.DocumentStream”就能读HTML的代码但不足的就是编码会乱因为网页是GBK的。。好吧还是上代码。

代码语言:javascript
复制
private void Write_html()
        {   
            System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser1.DocumentStream, System.Text.Encoding.GetEncoding("gb2312"));
            string WHtml = getReader.ReadToEnd();
            string logPath = AppDomain.CurrentDomain.BaseDirectory + "\\HTML.html";
            if (string.IsNullOrEmpty(WHtml))
                return;
            if(!WHtml.Contains("#edf3fa"))
                return;
            LogManager.WriteLog("Write_html===>RUN");
            try
            {
                using (StreamWriter sw = File.CreateText(logPath))
                {
                    sw.WriteLine(WHtml);
                    sw.Flush();
                    sw.Close();
                    sw.Dispose();
                }               
            }
            catch (Exception _err)
            {
                LogManager.WriteLog("Write_html=_err==>:" + _err);
            }         
        }

上面的代码就是通过读取webBrowser1的内容写入html里面的。。这样就完成html的建立。。。那怎么激活这个呢,一开始想打开页面后再执行,但因为有时候webBrowser1还没完成加载完成,所以无内容。因此突然想到一个webBrowser1_DocumentCompleted。。这个DocumentCompleted就是监听加载完毕就执行这个,预是在这里加入就可以了。。完美。。最后,怎么激活webBrowser1的地址,其实就是webBrowser1.Navigate("网站")就可以了。。又多了一个简单的功能。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档