The most recent robbery was reported at about 2 a.m. Monday.
The 56-year-old victim picked up the suspect at 18th and Castro streets and was asked to drive him to Divisadero Street and Geary Boulevard, said police Capt. Denis O'Leary from the department's Park Station.
But during the drive, the suspect asked the cabbie to take him instead to O'Farrell and Beideman streets, where the suspect then pulled out a knife, put it to the driver's throat and demanded cash, O'Leary said.
The cabbie handed over the money and the suspect fled, police said. The victim was not injured in the robbery.
The suspect is described as a black man in his late 40s or early 50s who is about 5 feet 9 inches tall and weighs 210 pounds. He was wearing a black hoodie, black pants and black shoes, O'Leary said.
The robbery is the fourth at the intersection of O'Farrell and Beideman streets since last month and at least the eighth since July, police said.
O'Leary said he does not know whether any of the robberies are connected, but said investigators are keeping an eye on that intersection. "We try to run surveillance on the block when staffing allows," he said.
Police spokesman Officer Albie Esparza said the cab has been towed for evidence, and that investigators are trying to recover surveillance video footage taken from a camera inside the taxi.
Anyone with information about the robberies is encouraged to call the Police Department's anonymous tip line at (415) 575-4444 or send a tip by text message to TIP411.