Не удается найти формы на веб-странице с помощью модуля Perl - WWW:Mechanize

Я использую модуль perl WWW:Mechanize

До сих пор все было хорошо, но для определенной веб-страницы не удалось найти существующую форму:

<form id="formaction" method="post" action="omadm_locate.php">

Хотя, когда я печатаю содержимое страницы, печатается ожидаемая страница, и это правильная страница.

Я использовал print Dumper($mech->forms());, это ничего мне не дало;

$mech->forms ничего не вернул;

Все говорит мне, что на странице нет форм, хотя то же самое для входных файлов...

Кстати, я смог получить доступ к другим формам на других страницах, используя метод excat.


person eliane    schedule 08.09.2011    source источник
comment
Можете ли вы разместить этот код HTML-формы здесь?   -  person gangabass    schedule 08.09.2011
comment
‹form id=formaction method=post action=omadm_connectivity.php› ‹div id=actions› ‹div id=phoneInfoButton› ‹div class=divMsisdn› ‹label for=msisdn›MSISDN ‹/label› ‹input id=msisdn type= текстовое значение= имя=msisdn› ‹/div›   -  person eliane    schedule 08.09.2011
comment
........toolong‹/table› ‹table id=new_wlan style=display:none› ‹/td› ‹/tr› ‹tr› ‹/tbody› ‹/table› ‹/div› ‹/div › ‹/дел› ‹/дел› ‹/форма›   -  person eliane    schedule 08.09.2011
comment
Если рассматриваемая страница использует JavaScript/AJAX для добавления формы на страницу, этот модуль не будет работать. WWW::Mechanize не поддерживает JavaScript. WWW::Mechanize::Firefox — одна из многих альтернатив, если это так. См. также WWW::Mechanize::Shell, который может быть полезен при отладке вашей проблемы.   -  person marto    schedule 08.09.2011
comment
Узнайте, выполняет ли рассматриваемая страница AJAX, отключив сценарии в вашем браузере (Noscript — это подключаемый модуль, который делает это) и посмотрите, содержит ли страница все еще содержимое формы. Если содержимое действительно AJAX, используйте HTTPLiveHeaders или что-то подобное для проверки заголовков POST и подделывайте те, которые используют Mechanize, чтобы получить тот же результат.   -  person benui    schedule 14.09.2011
comment
Попробуйте использовать модуль WWW::Scripter для поддержки JavaScript и/или Ajax и распечатайте измененное содержимое, чтобы увидеть, есть ли ‹form или нет. Если да, то вы сможете его получить. Если нет, то формы нет вообще.   -  person Ωmega    schedule 06.03.2012


Ответы (1)


В старых версиях WWW::Mechanize возникали ошибки при поиске некоторых форм. Это важно, если вы используете какой-либо дистрибутив Linux с пользовательскими пакетами, которые не очень обновляются.

person dayer    schedule 07.03.2013