.NET C#-webBrowser。导航到下一个URL并不总是有效

.NET C#-webBrowser。导航到下一个URL并不总是有效,c#,webbrowser-control,C#,Webbrowser Control,我想使用C#webBrowser类访问一个文本文件中的URL列表,并将每个网站的内容保存到某个地方。问题是,程序并不总是访问新的URL 正确访问链接1和2,则浏览器窗口不会在链接3上刷新。链路4再次工作,而链路5、6和7出现故障。链路8工作,9到15故障。16件作品等等 以下是URL的示例列表: http://www.example.com/somefile_7.html*SomeOtherText1*SomeAdditionalText1 http://www.example.com/some

我想使用C#webBrowser类访问一个文本文件中的URL列表,并将每个网站的内容保存到某个地方。问题是,程序并不总是访问新的URL

正确访问链接1和2,则浏览器窗口不会在链接3上刷新。链路4再次工作,而链路5、6和7出现故障。链路8工作,9到15故障。16件作品等等

以下是URL的示例列表:

http://www.example.com/somefile_7.html*SomeOtherText1*SomeAdditionalText1

http://www.example.com/somefile_12.html*SomeOtherText1*SomeAdditionalText2

static int counter_getURL = 0;

private void Form1_Load(object sender, EventArgs e)
{
    nextTurn();
}

void startBrowser(string url)
{
    webBrowser1.Navigate(new Uri(url), "_self");
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(get_browser_string);
}

void get_browser_string(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Display the content of the website in textBox1
    textBox1.Text = webBrowser1.Document.Body.InnerText;
    MessageBox.Show("Next");
    nextTurn();
}

public void nextTurn()
{
    startBrowser(getURL());
}

public string getURL()
{
    string url = "";
    string[] input = System.IO.File.ReadAllLines(@"C:\Users\WORKSTATION01\Desktop\url_list.txt", Encoding.Default);
    // Get the URL only
    string[] splitted = input[counter_getURL].Split(new char[] { '*' });
    url = splitted[0];
    counter_getURL++;
    return url;
} 

DocumentCompleted还为网页内的框架触发。我的猜测是,您的URL的某些网页有框架,这会干扰您的代码。

您不能使用WebClient类吗?这是一个相关的问题。更具体地说,如果网页包含框架,DocumentCompleted将被触发两次-首先是外部网页,然后是框架。这两个火可能非常接近,因此在很短的时间内调用nextTurn-因此您可能会有第二个URL未显示的错觉。