|
|
发表于 2009-2-8 17:04:00
|
显示全部楼层
Re:欢迎个人或游戏团队加盟
class SiteDownloader
{
public interface IUrlFacter
{
string ToUrl();
}
public interface IUrlGenerater
{
IUrlFacter NextUrlFacter();
}
public interface IFiltered
{
}
public interface IFilter
{
IFiltered Filter(string page);
}
public interface IOutputer
{
void Output(IUrlFacter urlfacter, IFiltered filtered); // urlfacter: ペ?ジが属する??を?Qめる
}
public void DownloadSite(IUrlGenerater urlgen, IFilter filtr, List<IOutputer> ops)
{
if (urlgen == null) return;
if (filtr == null) return;
if (ops == null) return;
if (ops.Count == 0) return;
IUrlFacter crrtUrlFacter;
while ((crrtUrlFacter = urlgen.NextUrlFacter()) != null)
{
string page;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(crrtUrlFacter.ToUrl());
request.Timeout = 500;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader streamreader = new StreamReader(response.GetResponseStream());
page = streamreader.ReadToEnd();
response.Close();
}
catch
{
page = "";
continue;
}
foreach (IOutputer op in ops)
{
op.Output(crrtUrlFacter, filtr.Filter(page));
}
}
}
}
class SiteGenerater
{
public interface IInput
{
}
public interface IInputer
{
IInput GetInput();
//
}
public void GeneraterSite(IInputer inputer)
{
}
}
}
|
|