mediawiki 页面的导出和离线浏览

公司的wiki是在局域网内的,但是有时不在公司时希望能够离线浏览。于是找了如下的方法来导出wiki的全部页面,并可以离线浏览。

 

1. 从mediawiki导出

    a. 获取所有页面的名称

mysql -u wiki --password=wiki wikidbname
select page_title from wikipage where page_namespace=0
EOF

    #请替换wiki和wikidbname为自己的wiki数据库设置。(获取默认namespace下的所有页面)

    b. 从输出列表中得到所有的页面名称

    c. 打开自己的wiki的special:export页面

    d. 将页面列表复制到输入栏

    e. 点击导出,生成xml文件

 

2. 用压缩工具,比如7zip将xml压缩为.xml.bz2文件格式。(因为后面要用到)

 

3. 用wiki taxi软件来离线浏览

    a. 下载wiki taxi,我找到的是1.3版本: http://dl.iplaysoft.com/files/1159.html 

    b. 解压后,打开WikiTaxi_Importer

    c. 将.xml.bz2的导出文件转为.taxi的wiki taxi格式。

    d. 打开wikitaxi

    e. 点击option,导入刚才生成的.taxi文件。

    f. 此时会打开一个随机页面,请搜索你的portal页面并打开。

 

可以开始离线浏览你的wiki内容了。完美支持中文。

 

### 使用Python实现MediaWiki页面或数据导出为Excel文件 为了将MediaWiki页面的内容导出至Excel文件,可以采用如下方法: #### 方法概述 利用`mwclient`库连接并获取MediaWiki上的页面内容。随后借助于`pandas`以及`openpyxl`等工具处理这些文本信息,并最终保存成Excel格式。 #### 安装所需依赖项 首先安装必要的Python包: ```bash pip install mwclient pandas openpyxl django-excel ``` #### 获取MediaWiki页面内容 创建一个简单的脚本来抓取特定页面的文字内容[^1]: ```python import mwclient site = mwclient.Site(('https', 'example.wikimedia.org'), '/w/') page = site.pages['Page Title'] content = page.text() print(content) ``` #### 将文本转换为结构化表格形式 考虑到MediaWiki页面可能包含复杂的标记语法,建议先解析HTML再提取纯文本部分;如果目标是某些预定义模板内的字段,则需编写正则表达式或其他方式定位感兴趣的部分。这里假设已经得到了一段干净的字符串作为输入源。 ```python from bs4 import BeautifulSoup def clean_wiki_text(wikitext): soup = BeautifulSoup(wikitext, "html.parser") cleaned_text = soup.get_text(separator="\n", strip=True) lines = [line for line in cleaned_text.splitlines() if line.strip()] return "\n".join(lines) cleaned_content = clean_wiki_text(content) ``` #### 创建DataFrame对象准备写入Excel 对于非结构化的wiki文本来说,将其分割成多行记录可能是最简单的方法之一。每行代表原文中的一个自然段落或者条目。 ```python import pandas as pd df = pd.DataFrame([{"Content": paragraph} for paragraph in cleaned_content.split("\n")]) ``` #### 导出为Excel文件 最后一步就是调用`to_excel()`函数完成实际的操作了。注意指定合适的参数使得生成的结果更易于阅读进一步分析。 ```python output_file_path = "./exported_data.xlsx" df.to_excel(output_file_path, index=False, engine='xlsxwriter') ``` 以上过程展示了如何从MediaWiki读取公开可访问的文章并通过编程手段转化为电子表格的形式。当然,在真实的应用场景下还需要考虑身份验证机制、错误处理逻辑等方面的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值