You can get some good last minute flights from Shanghai to Beijing and back on elong.net. If you either buy ahead at a 60% off rate or at last minute you can fly for around 500 RMB. All of the airlines in my opinion are the same here in China. China Airlines is partnered with United so miles accrue. Hainan is considered by my Chinese friends to be the worst but I found them considerable to CA. They don't have alot of aircraft so you could be waiting a while if there is a delay.