2014-11-18 4 views
0

Использование механизации, как я могу ждать некоторое время после загрузки страницы (на некоторых веб-сайтах есть таймер до появления ссылок, например, на страницах загрузки), а после того, как ссылки были загружены, щелкните по определенной ссылке ? Поскольку это якорный тег, а не кнопка отправки, будет ли работать браузер.submit() (я получал ошибки при этом)?Python mechanize wait и нажмите

ответ

3

Mechanize не предлагает javascript, поэтому вы не увидите динамический контент (например, таймер, который превращается в ссылку).

Насколько вы нажимаете на ссылку, вам нужно найти элемент, а затем вы можете вызвать click_link на нем. См. Раздел Finding Links от this site.

Если вы ищете что-то для обработки таких сайтов, хорошим вариантом является PhantomJS. Он использует nodejs, но работает на движке webkit, что позволяет анализировать динамический контент. Если у вас настроено ваше сердце на python, то вам может понадобиться Selenium для программного управления реальным браузером.

+0

+1 для важного момента о том, что у вас нет динамичной природы. Следовательно, нет необходимости ждать загрузки страницы, это не 'selenium'. – alecxe

+0

Как насчет того, чтобы использовать time.sleep() для этого много секунд, а затем обновлять страницу с помощью механизации? Есть ли у механизации такой вариант, и эта техника сбросит таймер? Есть ли альтернативное решение, кроме механизации и селена? – T90

+0

Вы можете спящий процесс python, но это не имеет значения, поскольку таймаут на веб-странице использует javascript для подсчета и затем отключает связь. – DivinusVox

0

Если это якорный тег, тогда просто GET/POST, что бы это ни было.

Таймер между появлением ссылок, как правило, выполняется в javascript - некоторые сайты, которые вы пытаетесь очистить, не могут быть использованы без javascript или требуется токен, сгенерированный в javascript с математикой клиентов.

В зависимости от места, вы можете извлечь время ожидания в мс/сек и time.sleep() для этого долго, или вам придется использовать что-то, что может выполнить Javascript