日期:2014-05-20  浏览次数:20738 次

100分问个.net采集器的问题
从51aspx上下的一些例子都不是自己想要的。而且51aspx关于采集的例子才4,5个,都是输入个网址然后在根据正则获取
这种方法我会了。
想问的是
例如输入个主页的网址,然后根据主页里面的链接一个一个采集下去,可以自己定义数量要采集几个,这个要用到多线程
该怎么用呢?
就是不用要采集一个页面还要输入那个页面的网址,只要输入一个网址可以根据里面的网址采集下去
该怎么写呢?有谁有例子可以参考下吗?

------解决方案--------------------
从51aspx上下的一些例子都不是自己想要的。而且51aspx关于采集的例子才4,5个,都是输入个网址然后在根据正则获取

while(获取的结果里面还有链接){
 结果 = 采集(此链接)
}
------解决方案--------------------
探讨

从51aspx上下的一些例子都不是自己想要的。而且51aspx关于采集的例子才4,5个,都是输入个网址然后在根据正则获取

while(获取的结果里面还有链接){
结果 = 采集(此链接)
}

------解决方案--------------------
不了解,帮顶,关注!
------解决方案--------------------
探讨
引用:

从51aspx上下的一些例子都不是自己想要的。而且51aspx关于采集的例子才4,5个,都是输入个网址然后在根据正则获取

while(获取的结果里面还有链接){
结果 = 采集(此链接)
}

好提议。。。反复的循环,只要有链接的地方就看可有子链接,有就继续采集,但是这样的数据量是不是太恐怖了啊。

------解决方案--------------------
void Func(string url){
Document doc = new Document(url);

ElementCollect els = doc.GetElementsByTagName("a");

foreach(Element el in els){
Func(el.Attributes["href"]);
}
}

http://blog.csdn.net/sq_zhuyi/archive/2010/06/26/5695397.aspx
------解决方案--------------------
循环套循环,中间加上控件变量 .

------解决方案--------------------
一般情况下就是输入首页地址,然后把首页中的地址全抓出来,然后再一个一个往下抓
一般都是用队列

------解决方案--------------------
路过,帮顶下
------解决方案--------------------
采集要有针对性!

不同的网站配置不同的采集方案!(正则方案)。没有通用的
------解决方案--------------------
是获取一个地址就采集,还是地址全部获取完了之后一次性采集
------解决方案--------------------
获取一个地址列表。一个个采集。都这么做的。
------解决方案--------------------
不懂
------解决方案--------------------
可以定义个最大线程数,采集的任务采用队列形式。根据任务动态分配线程
------解决方案--------------------