Well, I haven't embraced zero waste for this, yet... but my method is "low waste"... ;)
I purchased the gallon size of an enzymatic cleaner (red with miracle in the name) and use a spray bottle as needed...works wonderfully! I use the oldest rags (cut-up t-shirts) in the pile and either wash them, if possible, or toss them if they get too gross.
When necessary, we've always rented a carpet cleaner (we're down to just one room now, everything else has been "hardwooded"), and I have no idea how one could get around doing this -- or hiring someone..... Messes we deal with pretty much as Karin has. We have a vacuum cleaner, too, and an old, small shopvac for major spills, etc. Can't see my way around these, either!
I'd like to remove the carpeting in this last room, for a multitude of reasons, but have a holdout family member :-/
For tough stains (including pet messes), I use a mix of equal parts vinegar and water, apply it to the stain, wait 5 minutes, then blot with a rag. If necessary, I use an old toothbrush to scrub at the stain. Then, I rinse with more water and blot dry with a clean rag. For lingering odors, I shake baking soda onto DRY carpeting, let it sit for an hour or so, then vacuum it up. You can also spritz/dab peppermint essential oil on the area to dispel odors. If all else fails, I bring out the powdered oxygen bleach (Ecover brand comes in a recyclable cardboard box) and mix a 1/2 tsp with an couple of drops of liquid soap to form a paste. Test the paste on an inconspicuous area first to see if it's compatible with the carpeting, then apply it to the stain and let it sit 5-10 min. Wipe off paste with a damp rag, and rinse with more water and another clean rag. Hope this helps.
Don't rely on the baking soda and vinegar, sometimes these stains can't be removed easily. So in order to remove those stains take help from professional carpet or rug cleaners. They will deep clean your carpets and rugs and soak it well without damaging it.