我目前正在开发一个带有内置网络爬虫的自定义搜索引擎。出于某种原因,我不喜欢多线程,因此到目前为止,我的索引器是以单线程方式编码的。现在我正在构建的爬虫遇到了一个小难题。有人可以建议哪个更好,抓取 1 个页面然后将其编入索引,还是抓取 1000 多个页面和缓存,然后编入索引?
请您参考如下方法:
网络很慢(相对于 CPU)。通过并行化爬虫,您将看到速度显着提高。否则,您的应用程序将花费大部分时间等待网络 IO 完成。您可以使用多线程和阻塞 IO,也可以使用单线程和异步 IO。
此外,与一次索引一个文档相比,大多数索引算法在成批文档上的表现会更好。