c#怎样获得网页代码(无法加载完网页) 一个网页因为加载超时,已经停止加载了,而部分加载的网页内容已经有我想要的文字内容。我该怎样获得那些内容呢?在未加载完网页时,用WebBrowser1.document 或者WebBrowser1.documentText 都报错。当然,可以用重新加载的方法来让网页从新加载完,可是网速慢,而且已经有了我要的内容,所以没有必要从新加载。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 document.onreadystatechange = function() { if (document.readyState == "complete") { } }判断状态获取内容 使用webclient 类看看下面的代码 在VS2005测试通过的WebClient myclient;myclient = new WebClient();String build; myclient.[color=#FF00FF]DownloadFile(textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt"); build = myclient.DownloadString(textBox1 .Text .Trim ()); richTextBoxsource.Text = build; Stream stream = myclient.OpenRead(textBox1 .Text .Trim ()); StreamReader read = new StreamReader(stream); string code = read.ReadToEnd(); richTextBox1.Text = code;[/color] 使用webclient 类 看看下面的代码 在VS2005测试通过的 WebClient myclient; myclient = new WebClient(); String build; myclient.DownloadFile(textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt"); build = myclient.DownloadString(textBox1 .Text .Trim ()); richTextBoxsource.Text = build; Stream stream = myclient.OpenRead(textBox1 .Text .Trim ()); StreamReader read = new StreamReader(stream); string code = read.ReadToEnd(); richTextBox1.Text = code; 试下 webclient 采用超时策略:使用Timer控件,设置其时间间隔为1秒(视具体情况调整);有些网页会执行多次DocumentCompleted事件,所以不知道何时才算真正加载完网页了。这里采用超时策略,每次执行DocumentCompleted时间都会将计时器清0,如果超过1秒种之后没有再触发事件说明页面已经加载完毕。 private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (browser.ReadyState == WebBrowserReadyState.Complete) timer1.Enabled=true; }private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; Do(); } WebBrowser1.DocumentStream也为空吗强制调用WebBrowser1.Stop()试试看 .vshowt.exe和.vshost.exe.manifest 是什么文件呀? CSDN账号被封后怎么办? TreeView从数据库中动态加载节点 关于两个from的传值问题!!!!看看啊 一个关于实时计费的算法问题!!!!有过经验的请指点一下!! picturebox.image的判断问题 DataGridView绑定IList<T>实时更新问题 Calendar的问题!!! 阴山脚下菜鸟求高手帮忙解决下小小问题? .net对win98的兼容性如何? DataGridView的问题 gridview中按特定值查询的显示问题?
{
if (document.readyState == "complete")
{
}
}
判断状态获取内容
WebClient myclient;
myclient = new WebClient();
String build;
myclient.[color=#FF00FF]DownloadFile(textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt");
build = myclient.DownloadString(textBox1 .Text .Trim ());
richTextBoxsource.Text = build; Stream stream = myclient.OpenRead(textBox1 .Text .Trim ());
StreamReader read = new StreamReader(stream);
string code = read.ReadToEnd();
richTextBox1.Text = code;[/color]
WebClient myclient;
myclient = new WebClient();
String build;
myclient.DownloadFile(textBox1 .Text .Trim (),@"F:\凌欷\Asp.net\CSDN\source.txt");
build = myclient.DownloadString(textBox1 .Text .Trim ());
richTextBoxsource.Text = build; Stream stream = myclient.OpenRead(textBox1 .Text .Trim ());
StreamReader read = new StreamReader(stream);
string code = read.ReadToEnd();
richTextBox1.Text = code;
使用Timer控件,设置其时间间隔为1秒(视具体情况调整);
有些网页会执行多次DocumentCompleted事件,所以不知道何时才算真正加载完网页了。
这里采用超时策略,每次执行DocumentCompleted时间都会将计时器清0,如果超过1秒种之后没有再触发事件说明页面已经加载完毕。
private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (browser.ReadyState == WebBrowserReadyState.Complete)
timer1.Enabled=true;
}private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
Do();
}