I've had good luck buying seatpost shims on eBay. Even better when you first have a Vernier gauge, or micrometer to measure the EXACT diameter of the your seat post and the inner diameter of the seat tube which receives it. I think I remember the shims and the gauge being each about $4 or $5 (incl. shipping) from generic Hong Kong based sellers.
The beer-can shim has never worked for me, except when the seatpost was already a pretty close match. If you have to make up a big gap, it fails pretty quickly.