|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Парсер html файла |
|
PowerShell - [решено] Парсер html файла
|
Новый участник Сообщения: 34 |
Всем привет! Передо мной стоит следующая задача - имея ссылку на страничку в интернете проанализировать ее содержимое, скачать и сконвертировать в другой формат одну картинку (имя каждый раз разное, но есть характерные приметы), а так же скачать трейлер с ютуба. Картинку и клип положить в созданную папку. Исходная ссылка всегда имеет вид: http://www.luxorfilm.ru/film/хххх/названиефильма/ Где хххх - четыре цифры. Именно их нужно использовать в качестве имени для папки.
1 скрипт принимает ссылку как аргумент и создает папку из части этой ссылки. Каждый раз ссылка содержит четыре цифры, их и нужно взять в качестве имени 2 скачивает html файл по ссылке 3 читает содержимое файла и запишет в переменные без html тегов две ссылки: - одна на картинку - одна на ролик на ютубе 4 получает ссылку из переменной и конвертирует каринку в нужный формат 5 получает ссылку из переменной и скачивает видео с ютуба 6 складывает результаты шагов 4 и 5 в папку, созданную на шаге 1 Пока не получилось выдернуть необходимые куски текста из ссылки для скачивания картинки и ролика. Что получилось: 0 создать директорию 1 скачать файл, получить из него части текста содержащие нужные значения 2 сконвертировать файл в нужный формат 3 скачать клип с ютуба Основной скрипт: пример запуска: имяскрипта.ps1 http://www.luxorfilm.ru/film/2161/Rio-2/ $source = "$args[0]#.Length" $dir = ("$args[0]#.Length" -split '/')[4] New-Item -ItemType Directory $dir $file = "film.html" Invoke-WebRequest $source -OutFile $file # $wc.DownloadFile($source, $file) Select-String "http://www.luxorfilm.ru/upload/movies/" film.html | Select-Object -ExpandProperty line Select-String "youtube.com/embed" film.html | Select-Object -ExpandProperty line $source = "http://www.luxorfilm.ru/upload/movies/2161/1000_rio2.jpg" $destination = "poster.jpg" $wc = New-Object System.Net.WebClient $wc.DownloadFile($source, $destination) $sourceFile = "poster.jpg" $saveFile = "poster.png" Add-Type -AssemblyName system.drawing $imageFormat = "System.Drawing.Imaging.ImageFormat" -as [type] $image = [drawing.image]::FromFile($sourceFile) $image.Save($saveFile, $imageFormat::png) |
|
Отправлено: 13:38, 24-03-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать param($url,$folder = "C:\Test") Add-Type -AssemblyName system.drawing # Создадим папку $dir = [regex]::match($url,"/(\d{4})/").Groups[1].ToString() $path = Join-Path $folder $dir $savefile = Join-Path $path poster.png $saveyou = Join-Path $path trailer.flv if(!(Test-Path $path)) { md $path | out-null } # Получим ссылку на картинку $iw = Invoke-WebRequest $url $image = Invoke-WebRequest ($iw.Links | Where href -match "/$dir/.*\.jpg").href # Сохраним картинку в png $m = New-Object IO.MemoryStream(,([byte[]]$image.content)) $st = [drawing.image]::FromStream($m) $st.Save($saveFile, "png") # Получим ссылку на youtube $you = $iw.ParsedHtml.getElementsByName("ctl00_contentPlaceHolder_youtubeTrailerDiv") | Where innerHTML -match "www.youtube.com/embed" | Foreach {if($_.innerHTML -match 'src="//(.+)" frameBorder') {$matches[1]}} youtube-dl.exe -o $saveyou $you |
Отправлено: 14:36, 24-03-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Парсер строк TXT файла | Flayer | Скриптовые языки администрирования Windows | 9 | 15-10-2011 09:44 | |
[решено] HTML Application - отправка файла на сервер | rsod | Вебмастеру | 4 | 13-02-2011 14:13 | |
[решено] из файла Word получаем сразу таблицу в HTML... | serj88rus | Вебмастеру | 2 | 05-07-2010 12:09 | |
Помогите пожалуйста создать скрипт html(проигрование avi файла) | Большой Кол | Вебмастеру | 2 | 28-12-2008 23:42 | |
HTML - ProgressBar загружаемого файла | XCodeR | Вебмастеру | 4 | 05-02-2006 20:49 |
|