How to add a timer between wget html downloads?
wget can read URLs directly from a file (-i file), and knows how to pause between downloads (-w seconds), so you don’t actually need a loop at all. Also, wget downloads into the current directory by default so you don't really need --directory-prefix either.

Just run

mkdir -p ~/Desktop/download
cd ~/Desktop/download
wget -E -H -k -p -w $((5*60)) -i file.txt


PS: You might also want to add --random-wait to have wget wait between 0.5 and 1.5 times the number of seconds you've specified. This might help to avoid problems with sites who take extreme steps to detect and block wget requests.