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文件和token。

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 回答