page_num = 2
for link in br.links():
if link.text == str(page_num):
br.open(link) #I suspect this is not correct
break

for link in br.links():
print link.text, link.url

A search of all the controls in the table (e.g. drop-down menus) does not show the page buttons but a search for all the links in the table does. The page button does not contain a URL so it is not a typical link. I get TypeError: expected string or buffer.

I get the impression that this is something which can be done using mechanize.

Mechanize can be used to navigate a table which uses __doPostBack. I used BeautifulSoup to parse the HTML for the required parameters and followed useful guidance with the regex. My code is written below.