一个浏览器循环刷新网页的例子
2020-12-13 02:25
标签:style blog class code java tar 1. 首先需要引用两个dll SHDocVw.dll mshtml.dll 2.
本例子是按照所给出的数组,数组中存储的是将要循环访问的url,程序访问打开的网页寻找与数组的第一个url匹配的值,并且给他添加脚本,使该网页跳转到另一个url,即 数组的下一个值,使数组中所有url循环访问到。 while
(FindCurrent == "No") 同理读取到当前url,但是html内容还没有load完,也无法读到html
的body,会导致一直读不到html body,下面这个判断也非常重要 if
(body != null) 一个浏览器循环刷新网页的例子,搜素材,soscw.com 一个浏览器循环刷新网页的例子 标签:style blog class code java tar 原文地址:http://www.cnblogs.com/bianren/p/3718236.htmlclass Program
{
public static void Main(string[] args)
{
int i=0;
String[] urlarray = new String[] { "http://www.baidu.com/", "http://msdn.microsoft.com/", "http://www.qidian.com/Default.aspx" };
RefreshPage repa = new RefreshPage(0, 1, urlarray, false);
while (i 7)
{
repa.Next();
repa.FindCurrent = "No";
i++;
}
}
}
class RefreshPage
{
int CurrentPage;
int NextPage;
String[] UrlArray;
public String FindCurrent="No";
bool Stop;
public RefreshPage(int CurrentPage, int NextPage, String[] UrlArray, bool Stop)
{
this.CurrentPage = CurrentPage;
this.NextPage = NextPage;
this.UrlArray = UrlArray;
this.Stop = Stop;
}
public void Next()
{
SHDocVw.ShellWindows sw = new SHDocVw.ShellWindows();
while (FindCurrent == "No")
{
foreach (SHDocVw.InternetExplorer Iweb in sw)
{
if (Iweb.LocationURL.StartsWith(UrlArray[CurrentPage]))
{
HTMLDocument doc2 = Iweb.Document as HTMLDocument;
HTMLScriptElement script = (HTMLScriptElement)doc2.createElement("script");
script.text = "function newDoc(url){window.location.assign(url)} t=setTimeout(\"newDoc(" + "‘" + UrlArray[NextPage] + "‘" + ")\", 5000)";
HTMLBody body = doc2.body as HTMLBody;
if (body != null)
{
body.appendChild((IHTMLDOMNode)script);
FindCurrent = "Yes";
}
else
continue;
}
}
}
CurrentPage+= 1;
NextPage += 1;
if (NextPage >= UrlArray.Length)
NextPage = 0;
if (CurrentPage >= UrlArray.Length)
CurrentPage = 0;
System.Console.WriteLine("current");
}
}
3.
变量FindCurrent非常重要,由于浏览器打开一个网页需要时间,而程序读取确是,很快的,如果没有这个变量的判断,则代码会一直读不到当前要寻找的url。