Before you go to a lot of trouble and expense, do the following:
Have the battery load checked for 11v min. at the terminals when supplying 200 amperes. If not get a new one, if so, charge it back up.
Clean the cables and terminals.....that means disconnect the cables and clean the part that is a metal to metal connection internally to the terminal connection at the battery and at the engine....the black cable attached to the engine block and the red attached to the starting solenoid 3/8" terminal.
Do the same for the 3/8" output solenoid terminal and at the starter input terminal. Check the ground on the starter....some are plastic cased with metal parts to conduct the current so pay attention to what you are looking for and doing. All the cables in these circuits need to be removed and the contact part of the terminals both on the cables and where they attach need to be wire brushed, or fine sanded until nice and shiny....that includes the cable to battery connections. Some folks put grease over the connections after connecting to aid in corrosion protection....special battery post cleaning tools are at most auto parts stores. Reattach the cables and secure the tightening mechanisms.
With your fingers, rotate the starter's gear backwards so that it will travel all the way up the starter's shaft.....should move freely. When at the top continue to apply pressure and "with little effort" the starter's shaft should turn easily. Application of some White Lithium Grease (comes in a tube or spray rattle can) to the starter's shaft and manually run the gear up and down to spread out the lube.
With all your contacts cleaned, reinstalled and tightened and lubed as necessary, get out a DC voltmeter and put it on the starter's voltage terminals....the starter's studs. Have someone turn the ignition key to START while you hold the voltmeter contacts on the starter's studs. If you measure at least 10V across those studs and the starter doesn't slam the Bendix up against the stop at the end of the starter's shaft..........then you can think about buying a new starter!!!!