Wgetなどのコマンドラインツールを使用してOpenIDサイトにログインするにはどうすればよいですか?


10

具体的には、さまざまなStack Exchangeサイトのユーザープロファイルから特定のページをダウンロードできるようにしたいと考えています。ただし、これcronはコマンドラインから、解析可能な形式で(ジョブを使用して)自動的に行いたいと思います。私はこれにLinuxを使用することを好みますが、必要に応じてMacまたはWindowsマシンにアクセスできます。

理想的には、WgetcURLなどのツールを使用してページをフェッチしたいと考えています。どうすればログインをすり抜けられるかわかりません。Firefox経由でログインし、関連するCookieをエクスポートし、その--load-cookiesオプションを使用してWgetにインポートできることを示唆する提案を見てきました。たとえばここここ。これはログインしたばかりの場合は機能しますが、しばらくすると機能しません。IDトークンを更新する必要があるためだと思います。

したがって、SUにログインしてCookieをエクスポートした直後に、次のことができます。

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対応のWebサイトに自動的にログインするにはどうすればよいですか?


PS。私の質問は実際にはコマンドラインの側面についてであり、問​​題のWebページの実際の詳細ではないので、これはWebアプリケーションよりもこちらの方が適していると思います。どんなソリューションでもすべてのOpenIDサイトに適用できると思います。


3
SE API(api.stackexchange.com)を調べて、探している情報が提供されているかどうかを確認しましたか?これは、プログラムでデータにアクセスする公式の方法であり、OAuthを使用して認証します。
2013

@heavydええ、私はこのためにAPIを掘り下げる必要がないことを少し期待していました。それが私がしなければならないと思う唯一の方法である場合。一見すると、APIを使用してログインプロセスを自動化できるようには見えませ。私からのアクティブな入力を必要としない方法で認証できるかどうか知っていますか?。私は、ドキュメントを理解していれば、正しく、私は手動でログインする必要があります認証を必要とするデータを取得する
terdon

私は実際にはSE APIを使用していませんが、他のOAuth実装では、一度ログインして、無期限に有効なトークンが与えられます。
強化

回答:


1

Cookieは時々更新されるため、できません。これはセキュリティの目的であり、これを実行できる唯一の方法は、すでに行った方法です。私の理解から、少なくとも。


これは本当に古い質問だと思いました。
Maarten 2016年

-3

(再)のマニュアルページを読みwget--userおよび--passwordフラグの説明を確認します。

コマンドライン引数としてパスワードを渡すことはお勧めしませんps。実行する人はだれでも見ることが できるからです。未加工のパスワードをどこにも保存しないことがベストプラクティスですが、次のベストプラクティスは、それを所有者だけが読み取ることができるファイルに置くことです。


3
あなたが言及するフラグは、HTTPベースの認証(基本、ダイジェストなど)用です。SEはこれらのいずれも認証に使用しません。認証はサードパーティのOpenIDプロバイダーに依存しています。
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.