As Mayur mentioned, you can do a regex to pick up everything between quotes
list = re.findall("\".*?\"", string)
The problem you'll run into is that there can be a surprisingly large amount of things between quotation marks that are actually not quotations.
If you're doing academic articles, you can look for a number after the closing quotation to pick up the footnote number. Else with non academic articles, perhaps you could run something like:
"(said|writes|argues|concludes)(,)? \".?\""
can be more precise, but risks losing quotes such as blockquotes (blockquotes will cause you problems anyways because they can include a newline before the closing quotation mark)
As for using NLTK, I can't think of anything there that will be of much help other than perhaps wordnet for finding synonyms for "said".