I see two ways: optimizing by grid-searching for parameters, as @laneok suggests, or optimizing by adjusting a threshold as @cfh suggests.
Optimally you should do both.
I would not try to only optimize precision, as you usually get 100% precision by setting a very high threshold and getting very low recall. So if possible, you could define a trade-off between precision and recall that you like, and grid-search over that.
You can probably get better results for that if you actually do pick a separate threshold. You can use the SVC.decision_function to get a continuous output, and then pick the optimum threshold for the tradeoff you want to achieve. To pick the threshold you would need a validation set, though, which makes doing this inside the grid-search a bit more tricky (not impossible, though).
What I usually find is a good trade-off between optimizing what you want and complexity of pipeline is to optimize in the grid-search for something that will take precision into account, say "roc_auc", and after the grid-search pick a threshold on a validation set based on the tradeoff you like.
roc_auc basically optimizes for all possible thresholds simultaneously, so the parameters will not be as specific for the threshold you want as they could be.