There's an old techy trick of sticking your hard drive in a sealed bag with a bag of "do not eat" (you know the stuff that comes with everything these days lol)
And stick it in your freezer for a few hours, and then try it.
A common cause of a dying hard drive is heat, so lowering the temperature dramatically can give you enough time to recover data.
Don't expect a miracle though, I've only had about 15-20mins use before its gone again. Some people have no luck, and your find they will be the ones that follow my post with "OMFG!?!?!? Such a noob that doesn't work.." Or such :P
But it does, just google it and you'll find a lot of other suggesting it.
That is of course if a hard drive expert comes along and has a more specific answer to the issue, you can go down the root of trying to change the pcb board on your HHD but that's never a guaranteed fix, especially if its a header or alignment fault.