I know this is old, but I ran across the issue and found a simpler solution. However, it is possible that the fix was something added to astropy since this discussion. My solution was to put the URL in the parse line:
from astropy.io.votable import parse
tab=parse(url)
cat=Table.read(tab,format='votable')