Como analisar a origem das listas do Wikipedia para um arquivo .csv?

4

Eu estava respondendo esta questão quando surgiu a necessidade de um bom conjunto de dados apresentável. Eu decidi usar coisas aleatórias, mas meu primeiro pensamento foi usar uma lista da Wikipedia, como essa Lista das maiores extensões de pontes de suspensão , por exemplo.

Eu achei que a Wikipédia teria um bom caminho para exportar listas, mas isso não acontece. Tratar manualmente a fonte é muito incômodo.

Como tal, eu pergunto se existe alguma maneira de analisar a fonte da lista ou o código-fonte da página (mesmo que a versão imprimível funcione) para que o resultado final seja um .csv da lista?

Não me importo de perder as imagens, desde que os valores tenham sido exportados. Estou marcando o Excel porque, para o propósito da questão apontada, os dados precisavam ser tratados nele, mas como um .csv é (mais ou menos) universal, vou me contentar com qualquer resposta não-Excel.

Este é um exemplo da fonte da tabela wikipedia:

{| 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>
|-
|}
    
por Doktoro Reichard 20.09.2013 / 19:29

3 respostas

3

Você pode importá-lo no Excel 2010 acessando Dados - > Da Web, colando o endereço e clicando no marcador amarelo 'table' no topo. (Irritantemente, a grande mesa de bridge não tem seu próprio marcador.) Isso parece funcionar, embora haja duas linhas por bridge no seu exemplo. É um pouco mais arrumado usando a função ImportHtml em Google Spreadsheets .

    
por 20.09.2013 / 21:19
1

Na verdade, encontrei uma resposta que atendia aos meus objetivos (e fiquei surpreso por ter funcionado no Excel 2003 sem nenhum problema, exceto a formatação).

Eu acessei a função Edit beta e copiei-colei a lista, no estado em que se encontra, para o Excel. Isso copiou tudo embora não tenha sido formatado como seria de esperar (há muitas células vazias).

    
por 20.09.2013 / 19:56
1

Existe um script Python chamado wiki2csv referido no Wikipedia: Ferramentas página que foi escrita para este fim.

This program [wiki2csv] was designed to help edit large tables on wikipedia in the wikitable format. It works by converting the wikitable syntax to comma separated value syntax, that can be edited with Excel or LibreOffice. The result can then be transformed back to wikitable syntax. The program tries to preserve the wikitable formatting and metadata as good as is practically possible.

Requisitos.

wiki2csv requires Python 2.7. The core conversion routines will probably also work on older Python versions, but wiki2csv uses the argparse library to parse command line arguments, that is only available since Python 2.7.

Verifique a página wiki2csv BitBucket para mais detalhes.

    
por 31.05.2015 / 15:51