日期:2014-05-17  浏览次数:21054 次

[C#多线程网络爬虫]开10个线程不停歇地访问它的网站怎么样?
小弟的需求是从一个网站上定期抓取数据下来,有12万条数据,我现在开4个线程,要6个小时左右才能抓完.我想开10个线程咋样?不知道一般网站的并发怎么样?
C#?多线程?爬虫

------解决方案--------------------
哦 我明白了 你知道他的数据规则
不知道你是用什么方式去采集的
WebClient?
四个线程还可以吧 如果一般的服务器
保证你的每次访问都能够正常 四个就行了
------解决方案--------------------
我以前抓数据,发现一般开个3-5个线程就够了,开多了不会比开5个以上快多少,反而会效率低很多
楼主不可以加个东西计算下速度,比较下就能看出来多开线程其实也未必号多少(或许我抓的是学校服务器数据,受那边带宽限制吧)
------解决方案--------------------
有5个线程左右已经差不多了, 多了也不见得效果会好,因为线程也有会有开销;除了线程外, 因为还有网络带宽的因素, 这也是个硬性指标, 具体你自己测试一下应该可以得到答案了。

有些网站, 还有反爬虫技术 说不定还要延时处理呢;因为人家网站, 也总不能让你一个人就耗掉了它的资源,其他人那怎么访问呢。
------解决方案--------------------
必须有访问链接的上线,我测试过一个网站,并发连接数300,超过这个数就不行了