.NET C#-webBrowser。导航到下一个URL并不总是有效
我想使用C#webBrowser类访问一个文本文件中的URL列表,并将每个网站的内容保存到某个地方。问题是,程序并不总是访问新的URL 正确访问链接1和2,则浏览器窗口不会在链接3上刷新。链路4再次工作,而链路5、6和7出现故障。链路8工作,9到15故障。16件作品等等 以下是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
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未显示的错觉。