例如:http://www.yelp.com/search?find_desc=donuts&find_loc=78664&ns=1#start=20
如果您访问此站点,您会注意到它已加载,然后重新加载不同的数据。那是因为URL中有一个参数,表示start = 20,因此结果应该从#20开始,而不是#10。无论设置什么,Yelp都会加载前10个结果。不知道为什么他们这样做,但这是绝对破坏我的计划的一个主要的例子。 :(
基本上,只要我的程序有一个加载的页面,它就会将源代码复制到一个字符串中,以便它可以在其他地方显示它。它并不重要 - 重要的是字符串需要实际拥有页面中加载的最后一件事。每当页面加载,然后再次加载,我不知道如何捕获它并通过退出while循环并将源代码复制到名为source的字符串中来破坏程序。
以下是我重现问题的一些代码的信息。当我尝试在新程序中使用它时,它将复制第一页结果的源代码而不是更改为的结果。
GetSite = "http://www.yelp.com/search?find_desc=donuts&find_loc=78664&ns=1#start=20";
webBrowser9.Navigate(GetSite);
while (webBrowser9.ReadyState != WebBrowserReadyState.Complete)
{
p++;
if (p == 1000000)
{
MessageBox.Show("Timeout error. Click OK to skip." + Environment.NewLine + "This could crash the program, but maybe not.");
label15.Text = "Error Code: Timeout";
break;
}
Application.DoEvents();
}
mshtml.HTMLDocument objHtmlDoc = (mshtml.HTMLDocument)webBrowser9.Document.DomDocument;
Source = objHtmlDoc.documentElement.innerHTML;