2012-02-02 4 views
1

У меня есть (законный) край, где я хотел бы загрузить веб-страницу с помощью любого инструмента командной строки, но на веб-странице требуется идентификатор OpenID, чтобы отобразить содержимое, в котором я нуждаюсь.Использование wget в сочетании с идентификатором OpenID

wget поддерживает basic auth and FTP, но я не могу придумать разумный способ использовать его в сочетании с идентификатором OpenID. Единственный способ, которым я могу думать о

  • Выполните вход по OpenID с использованием wget
  • Каким-то образом сохраняет результирующую куки сессии
  • Пытаться извлечь страницу с помощью другого wget вызова, и --load-cookies печенье с последнего вызова

Это кажется сложным для построения, хотя, как и в случае с IIRC, процесс входа OpenID не так прост, как ваш простой старый веб-сайт. Кто-нибудь либо

  • знает менее сложный путь (выполняющий вход по OpenID вручную где-то еще было бы вполне приемлемы)
  • знать готовую реализацию того, что я описал выше? Я стараюсь избегать необходимости строить это с нуля, если это вообще возможно.

Другие вдохновления также приветствуются.

Я могу работать либо в Linux, либо в Windows. Linux будет предпочтительнее с точки зрения инфраструктуры, но любая платформа в порядке.

+4

Будете ли вы рассматривать коммутационные инструменты? http://stackoverflow.com/questions/5462950/openid-via-curl – Anthony

+0

@anthony, который выглядит интересным, спасибо вам большое. Мне нужно, что wget может делать с '--page-requisites' - он пытается загрузить и сохранить все связанные изображения и таблицы стилей. Я буду исследовать, может ли «завиток» это сделать. Если это возможно, моя проблема решена. –

+1

Ах, слишком плохо, локон не может этого сделать. Он может извлекать только структуру страницы, но не извлекать связанные ресурсы. –

ответ

2

выполнения OpenID логин вручную где-нибудь еще

Ну лучше, я могу думать о том, чтобы использовать любой браузер для входа в любую службу, вы хотите. Служба затем сохранит ваше «состояние» каким-либо образом в файле cookie в вашем браузере.

Получите этот файл cookie, например. хранить его в cookie.txt и передать его в заголовке

wget --header="Cookie: $(cat cookie.txt)" http://... 

, пока сессия является действительным, вы можете использовать скрипт Wget. Должен работать на 99% всех дел, возможно, не для онлайн-банкинга (если он ... немедленно переключает банки: -P)

+0

Большое спасибо за это. Я использовал «document.cookie» в консоли JavaScript, чтобы получить строку cookie, сохранил ее в 'cookie.txt', а затем использовал вашу строку, как указано выше, - работал шарм. –

Смежные вопросы