如何将 Wikipedia 列表的源解析为 .csv 文件?

如何将 Wikipedia 列表的源解析为 .csv 文件?

我当时正在回答这个问题当需要一个好的可呈现的数据集时。我决定使用随机的东西,但我的第一个想法是使用维基百科列表,例如这个最长悬索桥跨度列表, 例如。

我以为 Wikipedia 会有很好的导出列表的方法,但是没有。手动处理源太麻烦了。

因此,我想问是否有某种方法可以解析列表的源代码或页面的源代码(甚至可打印版本也可以使用),以便最终结果是列表的 .csv?

只要导出了值,我并不介意丢失图像。我之所以标记 Excel,是因为对于尖锐问题而言,需要在其上处理数据,但由于 .csv 是(大致)通用的,因此我会满足于任何非 Excel 答案。

这是维基百科表格来源的一个例子:

{| class="wikitable sortable"
|- style="background:#efefef;"
! style="text-align:left;" class="unsortable"|   
! style="text-align:left;"| Rank
! style="text-align:left;"|Name
! style="text-align:center;"| Main<br />span<br />metres
! style="text-align:center;"|Main<br />span<br />feet
! style="text-align:center;"|Year opened
! style="text-align:left;"| Location
! style="text-align:left;"| Country
! style="text-align:left;"|
|-
|[[File:Akashi bridge.jpg|150px]]||1||[[Akashi Kaikyō Bridge]]<br />(The longest since 1998)||1,991||6,532||1998||[[Kobe]] - [[Awaji Island]] ([[Hyōgo Prefecture|Hyōgo]])<br /><small>{{Coord|34|37|1.3|N|135|1|18.9|E|type:landmark|display=inline|name=Akashi Kaikyō Bridge}}</small>||{{JPN}}||<ref>{{cite web|url=http://www.jb-honshi.co.jp/english/technology/akashi.html|title=Akashi-Kaikyo Bridge|publisher=Honshu-Shikoku Bridge Expressway Company Limited|accessdate=2009-04-06}}</ref>
|-
|[[File:Xihoumen Bridge.JPG|150px]]||2||[[Xihoumen Bridge]]||1,650||5,413||2009||[[Zhoushan]] ([[Zhejiang]])<br /><small>{{Coord|30|3|42.4|N|121|54|57.6|E|type:landmark|display=inline|name=Xihoumen Bridge}}</small>||{{CHN}}||<ref>{{cite web|url=http://en.structurae.de/structures/data/index.cfm?ID=s0015467 |title=Structurae [en&#93;: Xihoumen Bridge (2008) |language={{de icon}} |publisher=En.structurae.de |date= |accessdate=2009-04-03}}</ref>
|-
|[[File:Storebæltsbroen-2.jpg|150px]]||3||[[Great Belt Bridge]]||1,624||5,328||1998||[[Korsør]] - [[Sprogø]] ([[Region Zealand]])<br /><small>{{Coord|55|20|31|N|11|2|9.3|E|type:landmark|display=inline|name=Great Belt Bridge}}</small>||{{DNK}}||<ref>{{cite web|url=http://www.storebaelt.dk/kollage/english/bridge |title=Storebælt &#124; The Bridge |publisher=Storebaelt.dk |date= |accessdate=2009-04-03}}</ref>
|-
|[[File:Yi Sun-sin Bridge in construction1.jpg|150px]]||4||[[Yi Sun-sin Bridge]]||1,545||5,069||2012||[[Gwangyang]] - [[Yeosu]] ([[South Jeolla Province]])<br /><small>{{Coord|34|54|21.4|N|127|42|18.1|E|type:landmark|display=inline|name=Yi Sun-sin Bridge}}</small>||{{KOR}}||<ref>{{cite web|url=http://rki.kbs.co.kr/english/news/news_Ec_detail.htm?lang=e&id=Ec&No=89984&current_page=|title=New suspension bridge to break world mark for tower height|publisher=rki.kbs.co.kr|accessdate=200012-06-26}}</ref>
|-
|}

答案1

您可以在 Excel 2010 中导入它,方法是转到数据 -> 来自 Web,粘贴地址,然后单击顶部的黄色“表格”标记。(令人讨厌的是,大桥表格没有自己的标记。)这似乎有效,尽管您的示例中每座桥有两行。使用ImportHtml中的函数会更简洁一些Google 电子表格

答案2

实际上,我找到了一个可以满足我目的的答案(并且相当惊讶它在 Excel 2003 上运行良好,除了格式之外没有任何问题)。

我访问了编辑测试版功能,并将列表原封不动地复制粘贴到 Excel 中。这样就复制了所有内容,尽管格式不符合我的预期(有很多空白单元格)。

答案3

有一个名为wiki2csv提及维基百科:工具为此目的而编写的页面。

此程序 [wiki2csv] 旨在帮助以 wikitable 格式编辑维基百科上的大型表格。它的工作原理是将 wikitable 语法转换为逗号分隔值语法,可以使用 Excel 或 LibreOffice 进行编辑。然后可以将结果转换回 wikitable 语法。该程序尝试尽可能好地保留 wikitable 格式和元数据。

要求。

wiki2csv 需要 Python 2.7。核心转换例程可能也适用于较旧的 Python 版本,但 wiki2csv 使用 argparse 库来解析命令行参数,该库自 Python 2.7 起才可用。

检查wiki2csv BitBucket页面以了解更多详情。

答案4

如果你可以使用在线工具,请使用 https://wikitable2csv.ggor.de/ 输入您的 url 并下载 csv,使用非常简单!

相关内容