Hi cruise4fun, are you looking to book a tour of St. Petersburg? Or book a different tour from the port there?
En esta web puedes informarte y reservar excursiones en San Petesburgo
You can always book through tours not associated with the cruise line (and some do) but be careful because if they do not get you back in time, the ship may not wait... Also they are not endorsed by the boat so do research on the reputation of the company. There are pros and cons to both sides... Homework is always best.
We did book our group tour in St. Petersburg, Russia, through a third party provider but you need to be extra-careful in Russia. Our tour (and all the ship tours) included an entry visa, without that you can’t leave the ship.
WeCruiseToo has good advice about the entry visa. We have been to St. Petersburg twice, once on Regent and once on Princess. I don't have the guts to try an independent, but it can be done. One of our favorite ports in the world actually. We really like St Petersburg, particularly out to the palace and to be there when they turn on the fountains.
My suggestion is to get on the wait list for Princess ASAP. When we use waitlist on Princess 90% of the time we get on because they add another coach. No waitlist, then no ones is aware of the demand.
Lots of local tour companies in St Petersburg are offering shore excursions, so just choose the one you like in advance. I used Petersburgtrip private tours for my only cruise in 2014 and was happy with them. The cruise lines sometimes tell that it's not safe to use any "not official" tours, but it is not true. In my opinion, they are simply stressed by the fact that competition is growing and more and more people are using other tour companies.
My recommendation would be to book through your Cruiseline. If something happened, and your private tour company didn't get back to the ship in time, it would sail away without you. Getting to your next port could be very costly and time consuming.
Yes, please be extra careful in Russia.