我目前正在开发一个内置网络爬虫的自定义搜索引擎。由于某种原因,我不喜欢多线程,因此到目前为止,我的索引器是以单线程的方式编写的。现在,我在构建爬虫时遇到了一个小难题。有人能建议一下,先抓取1个页面再索引,还是先抓取1000+页面和缓存,然后再索引,哪个更好?
发布于 2009-05-14 01:10:39
网络速度很慢(相对于CPU)。通过将爬虫并行化,您将看到显著的速度提升。否则,您的应用程序将花费大部分时间等待网络IO完成。您可以使用多线程和阻塞IO,也可以使用单个线程和异步IO。
此外,与一次索引一个文档相比,大多数索引算法在批量文档上的性能会更好。
发布于 2009-05-14 00:26:13
好些了吗?在什么方面?就速度而言,我看不到明显的区别。在健壮性方面(从灾难性故障中恢复),在抓取页面时为每个页面建立索引可能更好。
发布于 2009-05-14 00:28:34
如果你对爬虫是认真的,我强烈建议你“进入”多线程。基本上,您需要始终运行至少一个索引器和至少一个爬虫(可能同时运行多个爬虫)。其中,这最小化了启动和关闭开销(例如,初始化和释放数据结构)。
https://stackoverflow.com/questions/861035
复制相似问题