架mediawiki寫說明文件已有多年,一直苦於資料不能以程式批次修改,這幾天突然發現,原來早就有給各種語言的api介面,趕快來玩玩看。
1.安裝前,要先裝libcurl4-gnutls-dev
apt-get install libcurl4-gnutls-dev
2.安裝mediawiki-butt
gem install mediawiki-butt
3.使用範例:test.rb
require 'mediawiki/butt' wiki = MediaWiki::Butt.new('http://www.example.com:8080/mediawiki/api.php') wiki.login('user', 'password') main_page_text = wiki.get_text('首頁') p main_page_text
執行結果:
# ruby test.rb "#[[中醫]]\n#[[投資]]\n#[[電腦]]\n#[[生活注意事項]]\n#[[electricity]]\n#[[health]]\n#[[Other]]\n#[[B首頁]]\n\n"
大致來說,非常容易使用,有需要的人可以試試看。
參考連結:
MediaWiki::Butt
20210206補充: 刪除功能purge無效,返回已刪除,但其實未刪除。
page_titles = wiki.get_all_pages_in_namespace(0, 5000) page_titles.each do |t| main_page_text = wiki.get_text(t[0]) next if main_page_text.present? ar = [] p t ar << t p main_page_text status = wiki.purge(ar) p status exit end
執行結果
"'com.mysql.jdbc.driver' cannot be loaded" nil {"'com.mysql.jdbc.driver' cannot be loaded"=>true}
改用mediawiki_api刪除就成功了。