RCurl(またはCurl、およびRパッケージに適合させることができます)を使用してmediawikiにログインするにはどうすればよいですか?
ページを解析したいのですが、ログインする必要があります。そうしないとアクセスできません。
Mediawiki APIには、Cookieとトークンを返すログイン関数があります。セッションを認証してログインするには、両方を保存してAPIに送り返す必要があります。これをbashのcurlとXMLstarletで行う方法は次のとおりです。
ログイントークンのリクエストを送信し、Cookieをcookies.txtに保存し、出力をoutput.xmlに保存します。
curl -c cookies.txt -d "lgname=YOURNAME&lgpassword=YOURPASS&action=login&format=xml" http://your.mediawikiinstall.com/w/api.php -o output.xml
次に、XMLstarletを使用してxmlからトークンを引き出し、それをbash変数として保存します。
YOURTOKEN=$(xml sel -t -m '//login' -v '//@token' output.xml)
次に、Cookieファイルとトークンを含むログイン要求を送信します。
curl -b cookies.txt -d "action=login&lgname=YOURNAME&lgpassword=YOURPASS&format=xml&lgtoken="$YOURTOKEN http://your.mediawikiinstall.com/w/api.php