У меня есть простая команда для получения страницы входа со всеми ее зависимостями:
wget --post-data='user=user&password=password' --page-requisites https://…/login
В журнале сервера отображается следующая информация (сокращена по понятным причинам):
- ПОСТ /логин 302
- ПОЛУЧИТЬ /аккаунт 200
- POST /robots.txt 200 (должен быть GET, но он выполняется успешно, так что проблем нет)
- POST /favicon.ico 200 (то же самое)
- POST /[длинный URL PageSpeed]500 (за каждый файл CSS, JavaScript и изображение на странице)
Получение этих файлов проходит нормально, поэтому URL-адреса верны, но, похоже, PageSpeed не любит, когда клиенты отправляют POST-запросы.Как можно использовать wget
GET для всего, кроме первоначального запроса?
Использую GNU Wget 1.18.
Обновлять:Ошибкаподанный.
решение1
Из 'man wget':
This example shows how to log in to a server using POST and then proceed to download the desired pages, presumably only accessible to authorized
users:
# Log in to the server. This can be done only once.
wget --save-cookies cookies.txt \
--post-data 'user=foo&password=bar' \
http://example.com/auth.php
# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
-p http://example.com/interesting/article.php
If the server is using session cookies to track user authentication, the above will not work because --save-cookies will not save them (and neither
will browsers) and the cookies.txt file will be empty. In that case use --keep-session-cookies along with --save-cookies to force saving of session
cookies.