10

В частности, я хотел бы иметь возможность загружать определенные страницы из моего профиля пользователя на различных сайтах 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 .

2 ответа2

1

Вы не можете, потому что Cookies обновляются очень часто. Это в целях безопасности, единственный способ, которым вы могли бы это сделать, - это то, что вы уже сделали. по крайней мере, из моего понимания.

-3

(Переработка) Прочитайте страницу человека для wget и посмотреть на описаниях --user и --password флагов.

Обратите внимание, что передача пароля в качестве аргумента командной строки не рекомендуется, так как любой, кто запускает ps может его увидеть. Лучше всего не сохранять сырые пароли в любом месте, но лучше всего поместить их в файл, который может прочитать только владелец.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .