Ok, yes, diana is a bit OP. But you can still beat her.
I usually pick swain when I see a Diana pick, but Cho or Vlad works too. Start boots +3
I get Q at level one (yes, I know that W is better, but vs Melee, the slow helps you get a hit in at level 1), and spam it whenever she goes in to last hit. I spec for mana regen in runes and masteries, and last hit so I get enough mana to pull this off, and snow ball from there. I don't press the advantage too hard if they have a good early ganker like Udyr or Lee sin.
When I get to six, I back up, because in order to win a trade with diana, you haves to spend too much mana.
I buy 2 dorans, and a nega, and then go straight to RoA, all the while warding so I can follow if she tries to gank.
Once I get nega, I can usually win trades with Diana NP, and I start zoning her.
Late game, swain is better due to his greater damage output and ult heal.
Note: This is how I beat diana, there are other ways. I saw a Cho and a couple of vlads beat diana too.