【发布时间】:2013-03-14 20:59:37
【问题描述】:
当一个网络爬虫是用 PHP 编写的(运行 nginx、ubuntu),并且我们希望有多个爬虫同时爬取多个不同的站点,限制因素是什么?
CPU、RAM 还是磁盘 IO?
【问题讨论】:
-
加入
bandwidth、冰块和2片柠檬,然后摇匀。
标签: php web-scraping screen-scraping
当一个网络爬虫是用 PHP 编写的(运行 nginx、ubuntu),并且我们希望有多个爬虫同时爬取多个不同的站点,限制因素是什么?
CPU、RAM 还是磁盘 IO?
【问题讨论】:
bandwidth、冰块和2片柠檬,然后摇匀。
标签: php web-scraping screen-scraping
RAM 和磁盘 IO 可能会在 CPU 之前很久就受到限制,具体取决于您同时运行的进程的数量。每个爬虫可能会维护一个访问过的 URL 和找到的资源的关联数组。对于大型网站,这将...很大,尤其是如果您允许每个 URL 使用 4k 并将其存储为原始数据。
您可能会散列 URL(40 字节 GUID,或更小的二进制表示),这样可以/可以节省大量 RAM。
尽可能避免磁盘 I/O,仅在绝对必要时才写入以减轻其影响,并考虑写入数据库而不是写入可能是网络挂载的磁盘文件。
【讨论】: