Hundreds of migrants have been rescued but dozens more are missing or dead after trying to sail to Spain's Canary Islands.