Your best bet is to stay in one of St Petersburg's bed & breakfast or mini-hotels.
Bed and breakfasts and minihotels in St. Petersburg have good reputation for their quality, warm atmosphere, lower prices, and personal approach to clients.
There are plenty along Nevsky Prospekt and you can get a double room there for €50-€100 / night.
Our favorite one is Sovetskaya 21 B&B (also known by other name German B&B) which is one of the oldest the most reliable ones in the city.
Freshly renovated and cosy, it might be just what you were looking for. If you are lucky you will get a room with a balcony overlooking the channel.
Mini-Hotel worth mentioning here is Zolotoy Lev Hotel
. Rooms are quite spacious and the location is great.