Webbrowser 在web项目中的使用
2024-08-30 17:33:52
string htmlstr = string.Empty;
[STAThread]
public string GetHtmlByWeb(string url)
{
try
{ RunWithSingleThread(url);
DateTime dtime = DateTime.Now;
double timespan = ;
//等待 页面加载完毕 并获取到参数
while (string.IsNullOrWhiteSpace(htmlstr) && timespan < )
{
DateTime time2 = DateTime.Now;
timespan = (time2 - dtime).TotalSeconds;
}
// double lo = DateTime.Now.Subtract(dtime).TotalSeconds;
}
catch (Exception)
{ }
finally
{
if (t != null && t.ThreadState == ThreadState.Running)
{
t.Abort();
}
} return htmlstr;
} //线程
private Thread t;
//异步执行WebBrowser
public void RunWithSingleThread(object url)
{
ParameterizedThreadStart ps = new ParameterizedThreadStart(GetHtmlWithBrowser);
t = new Thread(ps);
t.IsBackground = true;
t.ApartmentState = ApartmentState.STA;
t.Start(url);
} private WebBrowser wb;
private void GetHtmlWithBrowser(object url)
{
htmlstr = string.Empty; wb = new WebBrowser();
wb.ScriptErrorsSuppressed = true; //防止脚本异常跳出弹窗
wb.ScrollBarsEnabled = true;
wb.Navigate(url.ToString()); wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
while (wb.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents(); //避免假死,若去掉则可能无法触发 DocumentCompleted 事件。
} }
//获取内容
public void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
htmlstr = wb.Document.Body.InnerHtml; }
最新文章
- Swift介绍
- IOS 学习资料
- linux shell中,单引号、 双引号,反引号(``),$()的区别
- nginx报file not found错误
- iOS9下修改回HTTP模式进行网络请求
- 11g Rac 切换
- Spring中一个类的注入和引用是不一样的
- linux blast
- swagger常用注解说明
- 洛谷 P2256 一中校运会之百米跑
- c++11实现一个简单的lexical_cast
- 任意flex控件导出图片
- Ubuntu 安装 搜狗输入法
- 我爱C语言
- 别人的dubbo学习笔记
- 简单的方法实现仿微信底部的Tab选项卡界面
- DataGridView根据条件给单元格绑定图片
- 初识prufer序列
- wamp环境初步使用
- 网易技术分享:Nginx缓存引发的跨域惨案
热门文章
- 题解报告:hdu 1203 I NEED A OFFER!(01背包)
- 基于Ubuntu14.04下Suricata(一款高性能的网络IDS、IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐)
- iOS开发 - CoreData框架 数据持久化
- Windows10系统切换JDK版本(前提是装了多个版本的JDK)
- Spring------IOC&;DI
- 无聊的我写了一个代码 。。。P1605 迷宫
- oracle 表之间的连接
- struts2 针对类型转换出错的处理
- convertquota - 把老的配额文件转换为新的格式
- basename - 从文件名中剥离目录和后缀