войти в медиа-вики с помощью RCurl - PullRequest
2 голосов
/ 16 июня 2011

как мне войти в медиа-вики с помощью RCurl (или Curl, и я могу адаптировать его к пакету R)?

Я просто хочу проанализировать страницу, но мне нужно войти, иначе я не смогуполучить доступ к нему.

1 Ответ

3 голосов
/ 10 октября 2011

Mediawiki API имеет функцию входа в систему, которая возвращает куки и токен. Вы должны сохранить и отправить оба обратно в API для аутентификации сеанса и входа в систему. Вот способ сделать это с помощью curl и XMLstarlet в bash:

Отправьте запрос на токен для входа, сохранив куки в 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

Затем извлеките токен из xml, используя XMLstarlet, и сохраните его как переменную 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

...