I've got some code that generates loss reports for EVE Online. It uses the
EVE-KILL API and
Python's urllib2 library. Near
the end of October 2015, I noticed that my calls to the API were returning a
403: Forbidden
error from the server. I didn't realize it at the time, but
EVE-KILL uses Cloudflare, which is pretty notorious for the lengths they'll go
through to block bots.
Yes, I am aware of the irony of blocking bots from an API designed to service bots.
So far, I've worked around the problem by adding a User-Agent
header to the
request that properly identifies the source:
request.add_header("User-Agent", "com.hynjoku.loss_report")
Although this has gotten things working again, I have a suspicion I'll be messing with this again in the future.