0

我正在构建一个大型网络爬虫,当在位于互联网服务器场中的专用网络服务器上运行网络时,爬取网络时有多少实例是最佳的。

4

2 回答 2

4

spare_memory_on_machine / memory_footprint_of_crawler_process * 0.95

于 2009-06-21T10:06:13.040 回答
4

要制作大型爬虫,您将不得不处理一些问题,例如:

• 不可能将所有信息保存在一个数据库中。

• 没有足够的 RAM 来处理巨大的索引

• 多线程性能和并发性

• 爬虫陷阱(通过更改 url、日历、会话 ID... 创建无限循环)和重复内容。

• 从多台计算机上爬网

• 格式错误的 HTML 代码

• 来自服务器的持续 http 错误

• 没有压缩的数据库,这使您对空间的需求增加了大约 8 倍。

• 重新制定例行程序和优先事项。

• 使用压缩请求(Deflate/gzip)(适用于任何类型的爬虫)。

还有一些重要的事情

• 尊重 robots.txt

• 每次请求都会有爬虫延迟,以免让网络服务器窒息。

最佳线程配置将取决于您的代码。我正在使用 .net 运行 100 个进程。我建议您使用调度类来避免不必要的打开线程。

PS。如果您使用 5 个线程,您将需要数年时间才能达到“大规模”网络抓取。

于 2011-12-19T14:17:12.823 回答