Я использую python-mechanize для очистки некоторых веб-сайтов, которые иногда просто не отвечают на запросы. и эти запросы остаются открытыми слишком долго, поэтому мне нужно ограничить время ожидания для этих запросов.
При использовании метода urlopen
время ожидания можно установить с помощью параметра timeout
, но я не нашел простого способа сделать это с помощью API высокого уровня, такого как методы submit
или click
. В идеале тайм-аут должен быть установлен только один раз для всего класса браузера, и все вызовы будут учитывать это.
Вероятно, было бы возможно настроить это, передав пользовательский request_class
каждому вызову click
и submit
, но это просто загрязнит код, поэтому я ищу более приятное решение для установки тайм-аута для класса браузера mechanize (и нет, я не хотите изменить время ожидания сокета по умолчанию, используя socket.setdefaulttimeout
).
Browser.__init__
занимаетrequest_class
, разве это не используется по умолчанию? - person Jan Matějka   schedule 08.02.2014