Your trouble here is that there is javascript being executed (note the "Merci de bien vouloir patienter le temps de téléchargement de l'application." message) when you visit the page, and mechanize doesn't quite handle that. The javascript creates a frame. The form you want is there, and its name is "EscaleForm" -- but mechanize cannot read it, because it isn't in the response it gets from its request.
You can check it by yourself. Do
# -*- coding: utf-8 -*-
import mechanize as mc
from BeautifulSoup import BeautifulSoup as bs
br = mc.Browser()
br.open(url='http://www.marseille-port.fr/fr/Page/Escale_consultation/13286')
html = r.read()
test = open('test.html', 'wb')
print >> test, "%s" % (bs(html).prettify())
test.close()
and look at the source of test.html
. You won't see the controls you are looking for. This is what mechanize "sees". Then open the page in your web browser, wait a few seconds and look at its source. Look for a form named "EscaleForm". There you'll find the controls the want.
I don't think there is a way of crawling this website with mechanize. You may want to look at Selenium instead.