====== LU12b - Crawler ====== Als Datenquelle für unseren Chatbot möchten wir https://wiki.bzz.ch/ nutzen. Dadurch wird der Chatbot Fragen zum Unterricht beantworten können. Zudem ist beim Wiki im Gegensatz zu z.B. Moodle keine Authentisierung erforderlich, was das Vorhaben etwas vereinfacht. ==== XML-RPC ==== Mit RPC (Remote Procedure Call) lassen sich Befehle auf einem fremden System ausführen. XML-RPC nutzt RPC um Daten im XML-Format auszutauschen. **Notiz am Rande** Im Prinzip ist XML-RPC der Vorgänger von SOAP (Simple Object Access Protocol). SOAP nutzt ebenfalls ein erweitertes XML-Format wird aber heutzutage von REST, basierend auf JSON, verdrängt. Es gibt jedoch noch zahlreiche Systeme, die SOAP (historisch bedingt) nutzen. Ebenfalls gibt es JSON-RPC. Dieses wurde aber grösstenteils durch REST abgelöst. https://wiki.bzz.ch/ nutzt DokuWiki (https://www.dokuwiki.org/de:dokuwiki), welches XML-RPC und teilweise auch JSON-RPC unterstützt. ^ Beispiel XML-RPC ^ Beispiel JSON-RPC ^ | Request: curl -X POST https://wiki.bzz.ch/lib/exe/xmlrpc.php \ -H "Content-Type: text/xml" \ --data ' wiki.getPage de:modul:ffit:3-jahr:start ' | Request: curl -X POST https://wiki.bzz.ch/lib/exe/jsonrpc.php \ -H "Content-Type: application/json" \ --data '{ "jsonrpc": "2.0", "id": "1", "method": "wiki.getPage", "params": ["de:modul:ffit:3-jahr:start"] }' | | Response: ====== 3. Lehrjahr ===== ===== Inhalte ===== <nspages . -subns -nopages -exclude -h1 -textNS="" -simplelist> | Response: { "id": "1", "jsonrpc": "2.0", "result": "====== 3. Lehrjahr =====\n\n===== Inhalte =====\n\n" } | Man sieht, dass die Antwort im Prinzip dieselbe ist. Die von DokuWiki unterstützten Befehle sind aufgelistet auf https://www.dokuwiki.org/lib/exe/openapi.php#?route=overview