2

RCurl(またはCurl、およびRパッケージに適合させることができます)を使用してmediawikiにログインするにはどうすればよいですか?

ページを解析したいのですが、ログインする必要があります。そうしないとアクセスできません。

4

1 に答える 1

3

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

于 2011-10-10T19:15:52.740 に答える