|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Файлы большого объема html сохранить в csv, изменив структуру |
|
Любой язык - Файлы большого объема html сохранить в csv, изменив структуру
|
Старожил Сообщения: 239 |
Добрый день. В приложении ссылки находятся три файла.
Файл csv - желаемый результат. Файл html - материал для обработки, приложил один, а так их несколько. Файл xlsx - получаемый результат в Excel в надстройке Power Query. Если в папке один файл html, то Power Query его обработает за минуту-пол-тары. Если скопировать пару раз этот же файл, то PQ три файла обработает за минут пять. Если же размножить до десяти, то на обработку уходит более 15 минут. Результат не очень. http://forum.oszone.net/thread-150969-4.html Глядя в этой теме как лихо скрипты расправляются с файлами csv, хотел бы решить и эту задачу, используя скрипт. То есть обработать папку с файлами html, изменив структуру данных и сохранив в csv. Возможно ли это и сколько времени потребуется на обработку? https://drive.google.com/open?id=1ob...li253cDbc-GMU_ |
|
Отправлено: 16:31, 29-03-2020 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DJ Mogarych, а… ну, да.
|
Отправлено: 20:40, 30-03-2020 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Вот смотрите, если в PQ(на обработку ушло 30 секунд на этот файл) слегка обработать и после сохранить в csv, то на выходе прикрепленный файл. Такой файл можно быстро обработать(извлечь текст между NOWRAP> и </TD>, удалить   ![]() |
|
Последний раз редактировалось v79italya, 16-07-2020 в 18:31. Отправлено: 22:27, 30-03-2020 | #12 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать для себя кстати распарсил, но выкладывать вряд-ли буду. Там помимо colspan'ов ещё всякого нежданчика может быть...
|
Отправлено: 15:41, 31-03-2020 | #13 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата Sham:
|
|
Отправлено: 20:40, 31-03-2020 | #14 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата v79italya:
На тот файл .html, который был показан, будет уходить минут от 5 до 15, как минимум... |
|
------- Отправлено: 11:54, 01-04-2020 | #15 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
А я думал что PQ много в чем тормозит |
|
Отправлено: 12:26, 01-04-2020 | #16 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата v79italya:
Вот парсер на powershell $infile = '15p.html' $outfile = '15p_out.csv' $timefile = 'time.txt' measure-command{ $skip = 2 # Пропуск первых строк таблицы, для формирования заголовков $html = new-object -com "HTMLFile" $html.ihtmldocument2_write($(gc $infile -raw -enc utf8)) $table = $html.getelementsbytagname("table") $tr = $table[0]|%{$_.getelementsbytagname("tr")} $head = $tr[$skip]|%{$_.getelementsbytagname("td")} $rowind = ,1 * $head.count $headers = $null $tr[$skip..$tr.count]|%{ $row = $_.getelementsbytagname("td") | select innertext,rowspan,colspan if ($headers) { $str = [ordered]@{} $rowspan = new-object 'int[]' $head.count $k=0 foreach ($item in $row){ while ($rowind[$k] -gt 1){ $str[$headers[$k]] = $null $rowind[$k] -= 1 $rowspan[$k] = 1 $k++ } $str[$headers[$k]] = $item.innertext.trim() $rowspan[$k] = $item.rowspan $k++ } for($i=0;$i -lt $rowind.count;$i++){ if ($rowspan[$i] -gt 1){$rowind[$i] = $rowspan[$i]} } [pscustomobject]$str } else { $headers = $row.innertext.trim() } }|export-csv $outfile -notype -enc utf8 -d ';' }|out-file $timefile rowspan-ы учитываются... colspan-ы не учитываются... Пробуйте... у меня парсился файл 11 минут. |
|
------- Отправлено: 15:33, 01-04-2020 | #17 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать YuS_2, вы героический человек.
|
------- Отправлено: 20:57, 01-04-2020 | #18 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать YuS_2, спасибо. Завтра опробую
|
Отправлено: 21:28, 01-04-2020 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
![]() |
|
Отправлено: 00:08, 02-04-2020 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Синхронизация большого объема данных | zer0c0o1 | Windows Server 2008/2008 R2 | 2 | 28-10-2014 14:26 | |
EP-8HDA5J не функционирует с винчестерами большого объема. | love_fist911 | Материнские платы и память | 6 | 15-08-2011 05:52 | |
Разное - [решено] Не запускаются exe файлы большого объема. | necrospunk | Microsoft Windows 2000/XP | 6 | 24-04-2011 15:46 | |
2008 R2 - Подвисает копирование файлов большого объема из сети | ujin | Windows Server 2008/2008 R2 | 2 | 07-10-2010 12:57 | |
HDD - старый BIOS и винчестер большого объема. | Trinux | Накопители (SSD, HDD, USB Flash) | 2 | 30-05-2009 20:22 |
|