В Питере полно хостелов, которые с радостью или не очень примут вас. Я бы порекомендовал воспользоваться сервисом Ostrovok и посмотреть там, выбрав нужную стоимость за ночь и удалённость от центра.
Я жил в пяти или семи хостелах Петербурга. Самым лучшим по сервису был Graffiti L или как-то так. Он находится возле метро «Площадь Восстания». Там было чисто, кровати удобные, комнаты большие, но… ОЧЕНЬ холодно зимой.
Также был в хостеле «Чехов» напротив 78-го отдела полиции. Это тоже центр. В первый раз там было нормально, но во второй… меня долго не могли заселить ночью, потому что администратор застряла на другом острове из-за развода мостов. Постельного белья не было, как и горячей воды. Стоило это 400 рублей за ночь.
Ещё какой-то на Фонтанке — маленький, уютный, тёплый. Где-то около 500 рублей за ночь.
Был ещё хостел возле Канонерского острова. Кировский район вроде это. Там вообще жопа. Таксисты боятся этого места и не ездят сюда. В самом хостеле не было шторок (точнее, были жалюзи сломанные), солнце светило в глаза. Не было горячей воды. И в принципе качество на нуле.
На Васильевском острове за 365 рублей жил — тоже вроде ничего, бюджетненький.
Мне очень понравился хостел на Саввушкина, метро Чёрная Речка. Название не помню, но… в общем, там нормально было. Сидел там вечерами кофе гонял бесплатный. Тоже где-то около 500 за ночь.