How can I generate a private key to spend the bitcoin of a watch only addresses that is in the imported addresses of blockchain.info?
One cannot "get" the private key from a watch only address. There is ECDSA logic and several hashing functions, that (as per today's knowledge) prevent this.
The priv key is generated in the wallet, via ECDSA you come to the public key, which is hashed and checksum'd and base58encoded into a bitcoin address. These hashing functions are a one way logic...
The answers here are fairly generic, and deserves probably a whole chapter of a book: Andreas' has it already explained in his book "Mastering Bitcoin". It is an amazing book that'll definitely get you to go. It's freely available online here. Look into chapters 4 and 5, that will explain ECDSA and wallets setup, followed by chapters on keys.