#linux #wget
Вопрос:
Я изучаю веб-очистку и начинаю с wget. Я пытаюсь очистить веб-сайт, который я размещаю локально в своей системе Linux, с помощью apache2 (чтобы я не раздражал веб-администраторов во время обучения). Сайт index.html страница начинается с простой формы входа в систему. Я пытаюсь войти в систему wget и начать загрузку содержимого сайта после входа в систему, но я заметил, что wget не загружает html-файл, который вызывается в параметре действия формы.
<form action="./form.html"
Я вижу это сообщение из вывода отладки:
Not following due to 'ignore' flag: http://127.0.0.1/form.html
После того, как я заглянул в wget src, я нашел этот раздел кода в html-url.c, который показывает, что он намеренно игнорирует html-форму
/* Mark the URL found in <form action=...> for conversion. */
static void
tag_handle_form (int tagid _GL_UNUSED, struct taginfo *tag, struct map_context *ctx)
{
int attrind;
char *action = find_attr (tag, "action", amp;attrind);
if (action)
{
struct urlpos *up = append_url (action, ATTR_POS(tag,attrind,ctx),
ATTR_SIZE(tag,attrind), ctx);
if (up)
up->ignore_when_downloading = 1;
}
}
Почему он это делает и есть ли способ решить эту проблему?
Вот мой полный вызов wget, если это имеет значение.
wget --user-agent=Mozilla/5.0 -r -e robots=off --wait 0.5 --no-check-certificate -np -L -p -E -c -d --post-data="username=usernameamp;password=password to pageForm" http://127.0.0.1 > wget.log 2>amp;1