ログインするとウィキペディアの一部の表示が異なります。ユーザーページをwgetして、ログインしているかのように表示したいと思います。
このようなユーザーページを取得する方法はありますか
http://en.wikipedia.org/wiki/User:A
これはログインページです。
http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3
最も簡単な方法:一般に、特定のWebサイトからの(ログイン)Cookieをwgetまたはcurlに提供する必要がありますログインしたかのようにページを取得します。
Firefoxを使用している場合は、 Export Cookies アドオンを使用して簡単に実行できます。アドオンをインストールします。
cookies.txt
ファイルを保存します(ファイル名/宛先を変更できます)。ターミナルを開き、wget
を--load-cookies=FILENAME
オプションとともに使用します。
wget --load-cookies=cookies.txt http://en.wikipedia.org/wiki/User:A
curl --cookie cookies.txt ...
(Chrome/Chromiumユーザー向けにこの回答を更新します)
--cookie-jar
またはwgetとともに使用します--save-cookies --keep-session-cookies
optionsと、HTTP/S PUTメソッドを使用してサイトにログインし、ログインCookieを保存してから、それらを使用してブラウザーをシミュレートします。余分なものをインストールせずに私のために働いた別の簡単なソリューション:
これにより、シェルに直接貼り付けることができるコマンドが提供されます。
curl 'https://mysite.test/my-secure-dir/picture1.jpg' \
-H 'User-Agent: Mozilla/5.0 ...' \
-H 'Cookie: SESSIONID=abcdef1234567890'
その後、コマンド内のURLを変更して、必要なものを取得できます。
CURLを使用すると、両方の方法でCookieを簡単に処理できます。
curl www.target-url.com -c cookie.txt
は、cookie.txtという名前のファイルを保存します。ただし、ログインする必要があるため、curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt
のような引数を指定して--dataを使用する必要があります。 loggued Cookieを取得したら、curl www.target-url.com/?user-page.php -b cookie.txt
で送信できます。
保存して送信するには、-c(--cookie)または-b(--cookie-jar)を使用します。
注1:cURL CLIの使用はPHPよりはるかに簡単で、おそらくより高速です;)
最終コンテンツを保存するには、cURLコマンドに> filename.html
を簡単に追加し、完全なhtmlコードを保存します。
「フル」に関する注2:YoはcURLでJavaScriptをレンダリングできません。ソースコードを取得するだけです。
この質問にまだ興味がある人のために、wget
/curl
リクエストを生成できるCurlWGetと呼ばれる非常に便利なChrome拡張がありますワンクリックで認証手段などを使用できます。この拡張機能をインストールするには、次の手順を実行します。
楽しい!
firefoxの cliget をご覧ください。
ダウンロードしようとすると、最終的なダウンロードダイアログで、ダウンロードをcurlコマンドラインとしてクリップボードにコピーするオプションが表示されます。
ブログ投稿 Wget with Firefox Cookies は、FirefoxがCookieを保存するsqliteデータファイルにアクセスする方法を示しています。そうすれば、wgetで使用するためにCookieを手動でエクスポートする必要がなくなります。コメントは、セッションCookieでは機能しないことを示唆していますが、試してみたサイトでは正常に機能しました。
次のようなものを試してください:
wget --keep-session-cookies --save-cookies cookies.txt --post-data 'user=goyamy&passwrd=mypassword' http://forum.ubuntu-it.org/
こちらのリンクもご覧ください。
より複雑なWebサイトベースのログインの場合は、代わりにPythonスクリプトと http://wwwsearch.sourceforge.net/mechanize/ のようなブラウザを模倣するモジュールの使用を検討する必要があります。 curl
またはwget
の。
これにより、セッションCookieが自動的に処理され、リンクをたどってログインフォームに入力できるので、Webブラウザを使用しているかのようにログインプロセスを自分で「スクリプト化」できます。
これを試しましたか?
wget --user=username --password=password http://en.wikipedia.org/wiki/User:A