If you can afford using mod_perl, a commonly suggested
solution over m_p mailing list is a module capable of blocking
greedy clients. A great example of such module can be found
inside the famous Eagle Book, and (lucky you ;-) ) also
in a sample chapter online here.
A little summary:
A trick that some mod_perl developers have used to catch
devious robots is to block access to things that act like
robots by requesting URLs at a rate faster than even the
twitchiest of humans can click a mouse. The strategy is
to record the time of the initial access by the remote
agent, and to count the number of requests it makes over
a period of time. If it exceeds the speed limit, it gets
locked out. Apache::SpeedLimit (listing 6.4) shows one way
to write such a module.
I think there are many modules listed on CPAN that can do
something similar.
Ciao, Valerio