//搜索
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;
}
}
}
}