我想保存网页源代码,我有以下代码:
WebBrowser browser = new WebBrowser();
browser.ScriptErrorsSuppressed = true;
int SleepTime = 5000;
loadPage: browser.Navigate("https://google.com");
System.Threading.Thread.Sleep(SleepTime);
MessageBox.Show("browser.Navigae OK");
if(browser.ReadyState == WebBrowserReadyState.Complete)
{
string path = @"htmlCode.txt";
if(browser.Document.Body.Parent.InnerText != null)
{
File.WriteAllText(path, browser.Document.Body.Parent.OuterHtml, Encoding.GetEncoding(browser.Document.Encoding));
MessageBox.Show("Success! htmlCode.txt created");
break;
}
else
{
MessageBox.Show("browser.Document.Body.Parent.InnerText=" + browser.Document.Body.Parent.InnerText);
MessageBox.Show("Failure htmlCode.txt not created");
}
}
如果我发表评论
MessageBox.Show(“browser.Navigate OK”);
我的代码无效......为什么?
答案 0 :(得分:-1)
为什么不起作用?
导航需要时间才能完成。您的MessageBox.Show
就像一个巨大的延迟缓冲区,它为Web浏览器提供了足够的时间来完成操作。
您应该使用DocumentCompleted事件来确保不会发生这种情况。