2010-04-20 16 views

Odpowiedz

13

Błędy rzuci wyjątek, więc wystarczy użyć spróbować ... z wyjątkiem ... z nimi radzić.

Twój obiekt przeglądarki Mechanize ma metodę set_handle_redirect(), za pomocą której można włączać i wyłączać przekierowania 30x. Wyłącz go i pojawi się błąd do przekierowania, które zajmują się jak obsługiwać dowolny inny błąd:

>>> from mechanize import Browser 
>>> browser = Browser() 
>>> resp = browser.open('http://www.oxfam.com') # this generates a redirect 
>>> resp.geturl() 
'http://www.oxfam.org/' 
>>> browser.set_handle_redirect(False) 
>>> resp = browser.open('http://www.oxfam.com') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build\bdist.win32\egg\mechanize\_mechanize.py", line 209, in open 
    File "build\bdist.win32\egg\mechanize\_mechanize.py", line 261, in _mech_open 
mechanize._response.httperror_seek_wrapper: HTTP Error 301: Moved Permanently 
>>> 
>>> from urllib2 import HTTPError 
>>> try: 
... resp = browser.open('http://www.oxfam.com') 
... except HTTPError, e: 
... print "Got error code", e.code 
... 
Got error code 301 
0

W diagonal, zrobić get_browser().get_code()

twill jest wybitnym automatyzacja i testy warstwa zbudowana na szczycie mechanize , aby ułatwić korzystanie. Jest naprawdę przydatny.

Powiązane problemy