4

Я отвечал на этот вопрос, когда возникла необходимость в хорошем представительном наборе данных. Я согласился использовать случайные вещи, но моей первой мыслью было использование списка Википедии, такого как, например, этот Список самых длинных пролетов подвесного моста .

Я думал, что у Википедии будет хороший способ экспортировать списки, но это не так. Обработка источника вручную слишком утомительна.

В связи с этим я спрашиваю, существует ли какой-либо способ синтаксического анализа либо источника списка, либо исходного кода страницы (даже работающей для печати версии), чтобы конечный результат был .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>
|-
|}

3 ответа3

3

Вы можете импортировать его в Excel 2010, перейдя в Данные -> Из Интернета, вставив адрес и нажав на желтый маркер «Таблица» вверху. (Досадно, что у стола большого моста нет своего маркера.) Кажется, это работает, хотя в вашем примере есть две линии на мост. Немного точнее использовать функцию ImportHtml в таблицах Google.

1

Существует сценарий Python под названием wiki2csv, упомянутый на странице Wikipedia:Tools, который был написан для этой цели.

Эта программа [wiki2csv] была разработана, чтобы помочь редактировать большие таблицы в википедии в формате wikitable. Он работает путем преобразования синтаксиса wikitable в синтаксис значений, разделенных запятыми, который можно редактировать в Excel или LibreOffice. Затем результат может быть преобразован обратно в вики-синтаксис. Программа старается сохранить как можно более удобное форматирование и метаданные.

Требования.

wiki2csv требует Python 2.7. Основные процедуры преобразования, вероятно, также будут работать на более старых версиях Python, но wiki2csv использует библиотеку argparse для анализа аргументов командной строки, которая доступна только с Python 2.7.

Проверьте страницу BitBucket wiki2csv для более подробной информации.

1

На самом деле я нашел ответ, который служил моим целям (и был очень удивлен, что он работал на Excel 2003 без каких-либо проблем, за исключением форматирования).

Я получил доступ к функции редактирования бета-версии и скопировал список, как есть, в Excel. Это скопировало все, хотя и не отформатировало, как я ожидал (там много пустых ячеек).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .