问题标签 [wikimedia-dumps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
22988 浏览

python - 解析维基百科转储

例如使用这个维基百科转储:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=lebron%20james&rvprop=content&redirects=true&format=xmlfm

是否有现有的 Python 库可用于创建具有主题和值映射的数组?

例如:

0 投票
1 回答
1833 浏览

java - 在 Java 中使用 XPATH 处理分层 XML 文档。效率?

这个问题的变体现在已经在这里被问过好几次了,但我的问题更多是关于在 Java 中使用 XPATH 的一般效率问题。

我的任务:获取有关地理位置的维基百科文章,并从中创建分层数据结构。

我已经获得了 wiki 页面的 XML 版本,并根据直观的模式重新格式化。我还制作了一系列非常简单的类来代表不同级别的行政等级,例如:

以及添加城市的方法、一些 getter 和 setter 方法以及 toString()。

这是我正在处理的 XML 文件类型的示例:

在这一点上,我基本上有一个功能设置,但是代码非常重复,并且没有考虑到地理数据固有的分层性质。理想情况下,我可以停在某个级别(假设“专注”于特定省份),并且从那时起仅以相对的方式引用事物,以最大限度地减少我必须爬过整个文档的次数。举个例子(注意,我使用了对传统 Document 设置的抽象,但下面的方法几乎完全对应于传统方法):

坦率地说,这似乎很愚蠢。我没有考虑到一旦我达到我关心的级别,这些字符串的所有内容都是相同的。我没有引用任何类型的相对路径,每当我遍历文档的一部分时,我实际上是遍历了整个内容。如果我能暂时屏蔽原始 XML 文档的其余部分并只关注我所在的省,并以相对的方式提及此后的所有内容,那就太好了。

我应该特别指出,“读取”抽象背后的成本是多么昂贵:

我本质上是在重新编译一个相同的模式,但结局略有不同?加载感兴趣的部分然后用“currProv/hanzi”之类的东西引用它的孩子怎么样?

我已经研究过解析 XML 的其他方法,并且“Digester”似乎做了类似于我想要http://commons.apache.org/digester/core.html的事情,但我已经在这个 XPATH 中拥有了几乎所有东西执行。

我一直怀疑这个问题的解决方案非常简单......但我不能完全掌握解决方案。无论如何,我感谢您的时间!

0 投票
1 回答
2078 浏览

java - 替代 .readLine() / readLine 只返回列表

我正在使用读取行从维基百科获取一些文本。但是 read line 只返回列表,而不是我想要的文本。有没有办法使用替代方案或解决我的问题?

0 投票
1 回答
258 浏览

python - 读取 XML 文件标签

我想从 xml 文件中读取标签值,例如<title>, 。成功读取<title_id>的值。是否可以使用相同的循环<title>读取<title>, ? 请帮助我,我是 XML 新手。<title_id>

我正在使用以下代码从文件中读取所有标题。它工作正常。

0 投票
1 回答
1045 浏览

encoding - 维基转储编码

我正在使用 WikiPrep 处理最新的 wiki 转储 enwiki-20121101-pages-articles.xml.bz2。而不是“使用 Parse::MediaWikiDump;” 我将其替换为“使用 MediaWiki::DumpFile::Compat;” 并对代码进行了适当的更改。然后,我跑了

我有一个错误

我猜转储中包含一些非 utf8 字符。所以我跑了

确实,我遇到了一些错误

所以,我的问题是 wiki 转储的编码格式是什么,如果我想将其转换为 utf-8,我该怎么办?或者应该如何修改 wikiprep.pl 以避免此类问题。

非常感谢

-- [已解决] 我应该先解压文件。

0 投票
2 回答
827 浏览

r - R XML:如何检索具有给定值的节点

这是我正在使用的 XML 文件片段:

现在,给定值“AccessibleComputing”,我如何检索 XMLInternalElementNode(对应于“AccessibleComputing”?我尝试使用 getNodeSet 但没有成功。

谢谢。

更新的问题

我应该首先提到整个 sample.xml 文件。就是这样。我面临的问题如下:

我如何获得标题元素值为“AccessibleComputing”的页面节点。我尝试了以下方法:

它回来了

预期输出:

我想我的 XPath 查询不正确 - 一次出现的“siteinfo”节点破坏了我的尝试。有什么建议么。

0 投票
3 回答
850 浏览

python - 如何使用 Python 解析一个巨大的 xml 文件(在旅途中)

我有一个巨大的 xml 文件(当前的维基百科转储)。这个大小约为 45 GB 的 xml 代表当前维基百科的全部数据。该文件的前几行是(更多的输出):

...等等

注意树中的页面元素。它对应于 Wikipedia 中的唯一页面。给定的 XML 以页面元素的形式包含 Wikipedia 的所有页面。我需要编写一个解析器,在其中我需要从页面中提取所有维基百科页面的标题条目的值,并假设(为简单起见)打印它们。

我正在尝试使用 Python 构建相同的内容(尽管如果提供解决方案,我愿意切换语言)。我知道的唯一方法是使用ElementTree

但是,使用函数 parse('file.xml') 需要首先完全解析整个文档,然后输出任何结果。很明显,我知道整个 xml 由页面元素组成。我希望程序在解析 xml 的其余部分时开始打印标题。这还可能吗。如果是这样,怎么做?

编辑注意:我在这里引用了一个提取标题的示例,以使问题保持​​简单。但是,我确实需要 xml 解析功能,因为我需要在将来提取相同的功能。

0 投票
1 回答
2660 浏览

python - 解析 MediaWiki wiki 的 XML 转储

我正在尝试解析维基词典的 XML 转储,但可能我遗漏了一些东西,因为我没有得到任何输出。

这是一个类似但更短的 xml 文件:

<title>如果<ns>元素等于 0 ,我有兴趣解析元素的内容。

这是我的脚本

0 投票
1 回答
114 浏览

mediawiki - wikipedia page to category mapping database

I was looking for a database which can help me in getting a list of all the categories a page belongs to, or all the pages present in a category. It is not there is the page enwiki-latest-page.sql databse and I am trying to avoid using the 42 GB xml dump. Is there some database available online which can help me in this regard?

0 投票
2 回答
14300 浏览

python - 从 ElementTree findall 返回的空列表

我是 xml 解析和 Python 的新手,所以请耐心等待。我正在使用 lxml 来解析 wiki 转储,但我只想要每个页面、它的标题和文本。

现在我有这个:

目前,titles 没有返回任何内容。我看过以前的答案,例如:ElementTree findall() 返回空列表和 lxml 文档,但大多数事情似乎都是针对解析 HTML 量身定制的。

这是我的 XML 的一部分:

我也试过 iterparse 然后打印它找到的元素的标签:

但它抱怨 e 没有标签属性。

编辑: 截屏