Войти

Показать полную графическую версию : [решено] Форматирование таблицы, полученной с web страницы


Uragan66
29-02-2020, 12:29
Добрый день всем!
Есть задача сформировать .csv из таблицы, полученной из исходного кода web страницы.
Таблицу получаю посредством скрипта Get-WebRequestTable.ps1 (https://www.leeholmes.com/blog/2015/01/05/extracting-tables-from-powershells-invoke-webrequest/) таким кодом:
$url = 'https://epg.iptvx.one/'
$t = Invoke-WebRequest $url

.\Get-WebRequestTable.ps1 $t -TableNumber 0 | Format-Table P2,P3 -hideTableHeaders -AutoSize -Wrap | Out-File .\epg.txtНо полученный формат не совсем устраивает. Вид такой:

ID в EPG Привязанные названия каналов
no_epg NO EPG

no_epg_cinema NO EPG Cinema

no_epg_mult NO EPG Mult

no_epg_music NO EPG Music

no_epg_news NO EPG News

no_epg_sport NO EPG Sport

0x0-fireplace-hd Горящий камин
Ланет HOME
Lanet Home
0x0 Fireplace HD

1-balt-ee PBK EE
PBK Эстония
Первый Балтийский канал Эстония
Первый Балтийский Эстония

1-balt-lt PBK LT
PBK Литва
Первый Балтийский канал Литва
Первый Балтийский Литва

1-balt-lv PBK LV
Pirmais Baltijas Kanāls
Первый Балтийский канал
Первый Балтийский
Первый Балтийский Латвия

1-music-hu 1 Music Channel Hungary

10kanal-novokuzneck 10 канал Новокузнецк

112-ua 112 Украина
112 Украина HD
112 Україна
112 Україна HD А для дальнейшей обработки необходим хотя бы такой формат:


ID в EPG Привязанные названия каналов
no_epg NO EPG

no_epg_cinema NO EPG Cinema

no_epg_mult NO EPG Mult

no_epg_music NO EPG Music

no_epg_news NO EPG News

no_epg_sport NO EPG Sport

0x0-fireplace-hd;Горящий камин
0x0-fireplace-hd;Ланет HOME
0x0-fireplace-hd;Lanet Home
0x0-fireplace-hd;0x0 Fireplace HD

1-balt-ee;PBK EE
1-balt-ee;PBK Эстония
1-balt-ee;Первый Балтийский канал Эстония
1-balt-ee;Первый Балтийский Эстония

1-balt-lt;PBK LT
1-balt-lt;PBK Литва
1-balt-lt;Первый Балтийский канал Литва
1-balt-lt;Первый Балтийский Литва

1-balt-lv;PBK LV
1-balt-lv;Pirmais Baltijas Kanāls
1-balt-lv;Первый Балтийский канал
1-balt-lv;Первый Балтийский
1-balt-lv;Первый Балтийский Латвия

1-music-hu;1 Music Channel Hungary

10kanal-novokuzneck;10 канал Новокузнецк

112-ua;112 Украина
112-ua;112 Украина HD
112-ua;112 Україна
112-ua;112 Україна HDНо никак не могу сообразить как можно полученную таблицу привести к необходимому формату.
Подскажите, пожалуйста, возможно ли с помощью кода powershell привести полученную таблицу к нужному формату ?

В идеале было бы получить на выходе .csv такого формата:

Горящий камин;tvg-id="0x0-fireplace-hd",Горящий камин
Ланет HOME;tvg-id="0x0-fireplace-hd",Ланет HOME
Lanet Home;tvg-id="0x0-fireplace-hd",Lanet Home
0x0 Fireplace HD;tvg-id="0x0-fireplace-hd",0x0 Fireplace HD

PBK EE;tvg-id="1-balt-ee",PBK EE
PBK Эстония;tvg-id="1-balt-ee",PBK Эстония
Первый Балтийский канал Эстония;tvg-id="1-balt-ee",Первый Балтийский канал Эстония
Первый Балтийский Эстония;tvg-id="1-balt-ee",Первый Балтийский Эстония

PBK LT;tvg-id="1-balt-lt",PBK LT
PBK Литва;tvg-id="1-balt-lt",PBK Литва
Первый Балтийский канал Литва;tvg-id="1-balt-lt",Первый Балтийский канал Литва
Первый Балтийский Литва;tvg-id="1-balt-lt",Первый Балтийский Литва

PBK LV;tvg-id="1-balt-lv",PBK LV
Pirmais Baltijas Kanāls;tvg-id="1-balt-lv",Pirmais Baltijas Kanāls
Первый Балтийский канал;tvg-id="1-balt-lv",Первый Балтийский канал
Первый Балтийский;tvg-id="1-balt-lv",Первый Балтийский
Первый Балтийский Латвия;tvg-id="1-balt-lv",Первый Балтийский Латвия

1 Music Channel Hungary;tvg-id="1-music-hu",1 Music Channel Hungary

10 канал Новокузнецк;tvg-id="10kanal-novokuzneck",10 канал Новокузнецк

112 Украина;tvg-id="112-ua",112 Украина
112 Украина HD;tvg-id="112-ua",112 Украина HD
112 Україна;tvg-id="112-ua",112 Україна
112 Україна HD;tvg-id="112-ua",112 Україна HDНо с приведённого выше формата такой .csv уже нетрудно сделать с помощью рег. выражений.

Busla
29-02-2020, 12:55
примерно так
.\Get-WebRequestTable.ps1 $t -TableNumber 0 | Select-Object P2,P3 -PipelineVariable savedP2 | % { $_.P3 -split "`r`n" } | Select-Object @{n='epgId';e={$savedP2.P2}}, @{n='channel';e={$_}} | Export-Csv .\epg.txt -NoTypeInformation

Uragan66
29-02-2020, 13:30
Busla, спасибо большое!
то, что нужно... дальше, думаю, с рег. выражениями сформирую нужный .csv




© OSzone.net 2001-2012