I use a vacuum to suck out the oil, as shown in the attachment. Easy to use and cheap to make. Make sure the hose that goes into the engine is small enough on the OD to reach the bottom of the crank case. The hose going to the vacuum can be larger of course.
I have a cordless, battery operated vacuum so no extension cords are needed if working in the field.
I have a Briggs and Stratton engine this won't work on, though, as I couldn't get a hose to go down far enough. I pulled the dipstick tube and discovered that the opening in the crank case for the dip stick is just barely large enough for the dip stick.