There are periodically people selling them here from dead keyboards. Otherwise eBay is always good. However, typically, you end up paying $3-5 per keycap, and you can get a replacement keyboard in its entirety on eBay for about $35-40. So... take that into account, depending on how many broken keys you have.