我从网上抓取了一些数据,因为没有 API。不幸的是,这是来自几个不同站点的大量数据,我很快了解到我不能在短时间内向同一个站点发出数千个请求......我想尽快处理数据,但我不不想引起 DOS 攻击 :)
问题是,每台服务器都有不同的功能,而我事先并不知道它们。这些网站属于我的客户,所以我的目的是防止我的脚本导致任何可能的停机。所以没有像“我会先尝试百万请求,如果失败,我会尝试 50 万,如果失败...... ”这样的政策:)
有什么最佳做法吗?Google 的爬虫如何知道它可以同时对同一个站点执行多少个请求?也许他们“打乱他们的播放列表”,所以对单个站点的并发请求并不多。我可以通过 HTTP 以某种方式检测到这些东西吗?等待单个请求,计算响应时间,大致猜测服务器的平衡程度,然后以某种方式构成最大并发请求数?
我使用 Python 脚本,但这对于答案并不重要 - 只是为了让您知道我更喜欢哪种语言的潜在代码片段。