我如何使用RCurl (或Curl,并且我可以使其适应R包)登录到mediawiki?
我只想解析一个页面,但我需要登录,否则我无法访问它。
发布于 2011-10-11 03:15:53
Mediawiki API有一个登录函数,它返回cookie和一个令牌。您必须将两者保存并发送回API,以便对会话和登录进行身份验证。以下是在bash中使用curl和XMLstarlet的一种方法:
发送登录令牌请求,将cookies保存在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
https://stackoverflow.com/questions/6370357
复制相似问题