В частности, я хотел бы иметь возможность загружать определенные страницы из моего профиля пользователя на различных сайтах Stack Exchange. Я хотел бы, однако, сделать это автоматически (с помощью cron
задания), из командной строки и в формате для анализа. Я предпочитаю использовать Linux для этого, но при необходимости могу получить доступ к компьютеру Mac или Windows.
В идеале, я хотел бы использовать такой инструмент, как Wget или cURL для извлечения страниц. Я не знаю, как пройти мимо входа в систему, хотя. Я видел предложения, в которых упоминается, что вы можете войти через Firefox, экспортировать соответствующий cookie и импортировать его в Wget через его --load-cookies
опцию. Например здесь и здесь . Хотя это работает, если я только что вошел в систему, это не так через некоторое время. Я думаю, потому что идентификационный токен должен быть обновлен.
Итак, сразу после входа в SU и экспорта моих куки я могу сделать:
wget --load-cookies cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
Однако через несколько минут я получаю сообщение об ошибке 404:
wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
https://superuser.com/users/151431/terdon?tab=responses
--2013-08-06 04:04:14-- https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.
Итак, как я могу автоматически войти на сайт с поддержкой OpenID из командной строки?
PS. Я думаю, что это лучше подходит здесь, чем в веб-приложениях, так как мой вопрос на самом деле касается аспекта командной строки, а не фактических деталей рассматриваемой веб-страницы. Я предполагаю, что любое решение будет применимо ко всем сайтам OpenID .
Ответы:
Вы не можете, потому что Cookies обновляются очень часто. Это в целях безопасности. Единственный способ, которым вы можете это сделать, - это то, что вы уже сделали. по крайней мере, из моего понимания.
источник
(Переработка) Прочитайте страницу человека для
wget
и посмотреть на описания для--user
и--password
флагов.Обратите внимание, что передача пароля в качестве аргумента командной строки не рекомендуется, так как любой, кто работает,
ps
может увидеть его. Лучше всего не сохранять сырые пароли в любом месте, но лучше всего поместить их в файл, который может прочитать только владелец.источник