//????
void search()
{
int i = 0;
LinkQueue.addUnvisitedUrl("http://blog.csdn.net/zhujunxxxxx/");
while (!LinkQueue.unVisitedUrlsEmpty()
&& LinkQueue.getVisitedUrlNum() <= 1000)
{
//???URL ??????
String visitUrl=(String)LinkQueue.unVisitedUrlDeQueue();
if(visitUrl==null)
continue;
zzHttp downLoader = new zzHttp();
CookieContainer cookie = new CookieContainer();
//???????
string content=downLoader.SendDataByGET(visitUrl??""??ref cookie);
//??URL ??????????URL ??
LinkQueue.addVisitedUrl(visitUrl);
//?????????????е?URL
string baseUri = Utility.GetBaseUri(visitUrl);
string[] links = Parser.ExtractLinks(baseUri?? content);
//?μ?δ?????URL ???
i++;
Add2Message("????????:" + LinkQueue.getVisitedUrlNum() + "??count=" + LinkQueue.getUnVisitedUrl().getcount());
foreach (string link in links)
{
if (link.Contains("css") || link.Contains("js") || link.Contains("gif") || link.Contains("jpg") || link.Contains("png") || link.Contains("jpeg"))
continue;
LinkQueue.addUnvisitedUrl(link);
AddMessage(link);
}
}
}
private void button2_Click(object sender?? EventArgs e)
{
new Thread(search).Start();
}
private delegate void InfoDelegate(string message);
public void AddMessage(string message)
{
if (richTextBox1.InvokeRequired)//?????????????
{
InfoDelegate d = new InfoDelegate(AddMessage);
richTextBox1.Invoke(d?? new object[] { message});
}
else
{
richTextBox1.AppendText(message + Environment.NewLine);
richTextBox1.ScrollToCaret();
}
}
private delegate void Info2Delegate(string message);
public void Add2Message(string message)
{
if (label2.InvokeRequired)//?????????????
{
Info2Delegate d = new Info2Delegate(Add2Message);
label2.Invoke(d?? new object[] { message });
}
else
{
label2.Text = message;
}
}
}
}