蜘蛛程序 求蜘蛛程序源码或讲哈思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Spider 是一种半自动的程序,因为它总是需要一个初始链接(出发点),但此后的运行情况就要由它自己决定了,蜘蛛程序会扫描起始页面包含的链接,然后访问这些链接指向的页面,再分析和追踪那些页面包含的链接。从理论上看,最终蜘蛛程序会访问到Internet上的每一个页面,因为Internet上几乎每一个页面总是被其他或多或少的页面引用。 你想知道的是哪个方面的应用?⑴ HTML分析 ⑵ 页面处理 ⑶ 多线程 ⑷ 确定何时完成任务. HTML分析 页面处理 这两个 HTML解析首先创建该类的一个实例,然后将它的Source属性设置为要解析的HTML文档: ParseHTML parse = new ParseHTML();parse.Source = " Hello World"; 接下来就可以利用循环来检查HTML文档包含的所有文本和标记。通常,检查过程可以从一个测试Eof方法的while循环开始: while(!parse.Eof()){char ch = parse.Parse(); Parse方法将返回HTML文档包含的字符--它返回的内容只包含那些非HTML标记的字符,如果遇到了HTML标记,Parse方法将返回0值,表示现在遇到了一个HTML标记。遇到一个标记之后,我们可以用GetTag()方法来处理它。 if(ch==0){HTMLTag tag = parse.GetTag();} 一般地,蜘蛛程序最重要的任务之一就是找出各个HREF属性,这可以借助C#的索引功能完成。例如,下面的代码将提取出HREF属性的值(如果存在的话)。 Attribute href = tag["HREF"];string link = href.Value; 获得Attribute对象之后,通过Attribute.Value可以得到该属性的值。 页面处理 首先要做的是下载HTML页面,这可以通过C#提供的HttpWebRequest类实现: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_uri);response = request.GetResponse();stream = response.GetResponseStream(); 接下来就从request创建一个stream流。在执行其他处理之前,要先确定该文件是二进制文件还是文本文件,不同的文件类型处理方式也不同。下面的代码确定该文件是否为二进制文件。 if( !response.ContentType.ToLower().StartsWith("text/") ){SaveBinaryFile(response);return null;}string buffer = "",line; 如果该文件不是文本文件,将它作为二进制文件读入。如果是文本文件,首先从stream创建一个StreamReader,然后将文本文件的内容一行一行加入缓冲区。 reader = new StreamReader(stream);while( (line = reader.ReadLine())!=null ){buffer+=line+"\r\n";} 装入整个文件之后,接着就要把它保存为文本文件。 SaveTextFile(buffer); http://tech.ccidnet.com/art/1060/20030818/59879_1.html codeproject.org 输入spider,一搜一大串有的已经很完善了 如何获取【页面错误】和【用户对象】这两个计数值 关于Windows服务安装的问题 馄饨和饺子,C#和Java,同一理念的两种表达方式 在类里访问session的问题,很多方法都试过,但还是无法访问,请指教 [求助]关于C#WIN窗体的菜鸟问题 知道网络机器名称,怎么得到他的IP地址?高手救命!在线等 问一个比较菜的问题??? C#如何显示dwg格式的文件 问一个有关socket通信的问题!急,在线等! 哇哈哈哈哈哈!双喜临门!!散分散分!!!瓦哈哈哈哈 关于通过网络传输文件的问题 求 C#和ASP.NET程序设计教程 电子版
你想知道的是哪个方面的应用?⑴ HTML分析 ⑵ 页面处理 ⑶ 多线程 ⑷ 确定何时完成任务.
parse.Source = " Hello World"; 接下来就可以利用循环来检查HTML文档包含的所有文本和标记。通常,检查过程可以从一个测试Eof方法的while循环开始: while(!parse.Eof())
{
char ch = parse.Parse(); Parse方法将返回HTML文档包含的字符--它返回的内容只包含那些非HTML标记的字符,如果遇到了HTML标记,Parse方法将返回0值,表示现在遇到了一个HTML标记。遇到一个标记之后,我们可以用GetTag()方法来处理它。 if(ch==0)
{
HTMLTag tag = parse.GetTag();
} 一般地,蜘蛛程序最重要的任务之一就是找出各个HREF属性,这可以借助C#的索引功能完成。例如,下面的代码将提取出HREF属性的值(如果存在的话)。 Attribute href = tag["HREF"];
string link = href.Value; 获得Attribute对象之后,通过Attribute.Value可以得到该属性的值。
页面处理
首先要做的是下载HTML页面,这可以通过C#提供的HttpWebRequest类实现: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_uri);
response = request.GetResponse();
stream = response.GetResponseStream(); 接下来就从request创建一个stream流。在执行其他处理之前,要先确定该文件是二进制文件还是文本文件,不同的文件类型处理方式也不同。下面的代码确定该文件是否为二进制文件。 if( !response.ContentType.ToLower().StartsWith("text/") )
{
SaveBinaryFile(response);
return null;
}
string buffer = "",line; 如果该文件不是文本文件,将它作为二进制文件读入。如果是文本文件,首先从stream创建一个StreamReader,然后将文本文件的内容一行一行加入缓冲区。 reader = new StreamReader(stream);
while( (line = reader.ReadLine())!=null )
{
buffer+=line+"\r\n";
} 装入整个文件之后,接着就要把它保存为文本文件。 SaveTextFile(buffer);
有的已经很完善了