Remember...
1) A job specification is a wish list. I'd love to employ someone who can code like a pro in 17 different languages. And only wants £15k. But I know I'm going to have to settle.
2) Your job desire is a wish list. You want a 15% pension, a BYOD budget, and be paid to go for conferences. You'll have to compromise somewhere.
3) There is a shortage - but companies don't always behave with economic rationality. If half the web developers in the UK died from Ebola, I'm still not sure I could convince my finance director to alter the yearly budget.
My advice to you would be to seek out a graduate training course (if you are a grad). If not, check out some other training schemes like Talentum http://www.telefonicaando2careers.com/gb/explore-our-opportu... (full disclosure, my employer runs that one).
I would also advise you to prove yourself at an interview and then simply ask for more money than they originally offered. Doesn't always work - but if you're worth it, you'll get paid.
Finally - and this probably isn't what you want to hear - suck it up. Spend a year getting paid a shitty wage and then - hey presto - you now have 12 months of experience, a portfolio, and references which you can use to get a better job.
HTH.