Traveling from St. Louis to Hannibal, Missouri, using public transport typically involves a combination of different modes due to the limited direct options. Although there isn't a direct train or bus service from St. Louis to Hannibal, you could start by taking an Amtrak train or Greyhound bus from St. Louis to a city nearby, such as Quincy, Illinois, which is relatively close to Hannibal. From Quincy, you would then have to arrange a taxi or rideshare service to reach Hannibal.