У меня есть эта небольшая проблема. Я написал скрипку curl, чтобы сначала щелкнуть ссылку, а затем заполнить форму, которую предоставляет ссылка.
ссылка «запрос посылки» на http://www.fikeandfike.com/propertytax/Grundy/MainMenu.aspx?c=32
и форма находится на http://www.fikeandfike.com/propertytax/Grundy/Inquiry.aspx
но моя проблема заключается в том, что скрипт заполняет форму и ничего не делает с ней
когда я повторяю результат curl, он показывает заполненную форму, но я хочу видеть результат формы
не могли бы вы рассказать мне, почему это происходит? можете ли вы предложить какой-то трюк, чтобы преодолеть эту проблему?
Как упоминалось в комментариях, проблема в том, что сайт, который вы пытаетесь «очистить», создается с использованием ASP.net, который не использует данные формы обычным способом.
Я знаю кого-то, кто успешно справляется с этим, но это неудобно. Ключевыми скрытыми полями, на которые следует обратить внимание, являются:
__EVENTTARGET
и __EVENTARGUMENT
: они устанавливаются Javascript при __EVENTARGUMENT
формы, но всегда к одному значению. Если вы используете инструмент отладки браузера (Firebug, URLParams и т. Д.), Чтобы проверить результат реального POST, вы сможете без проблем заполнить их. __VIEWSTATE
: каждый раз, когда загружается страница, она генерируется заново, поэтому каждый раз, когда вы ее запрашиваете, вы должны очищать ее из HTML загруженной формы. __EVENTVALIDATION
: Это поле существует специально для предотвращения подобного рода подмены. Подобно __VIEWSTATE
, он восстанавливается при каждой загрузке страницы, но его присутствие может означать, что вы можете изменять только одно поле за раз , так как оно будет проверять, что вы подаете против предыдущего состояния. Возможно, я ошибаюсь в некоторых особенностях, но это должно дать вам возможность начать …