![]() |
Вытащить описание с Youtube
Привет!
Собственно, сабж. Есть ролик, под ним описание. Как Invoke-WebRequest или PowerHTML может вытащить этот текст с сайта? И главный вопрос - как можно научиться, в каком направлении искать? Тот же Invoke-WebRequest выдаёт 100500 методов: Код:
$url = Invoke-WebRequest https://www.youtube.com/watch?v=HZTStHzWRxM Код:
<div id="description" slot="content" class="style-scope ytd-video-secondary-info-renderer"><yt-formatted-string class="content style-scope ytd-video-secondary-info-renderer" force-default-style="" split-lines=""><span dir="auto" class="style-scope yt-formatted-string">Don't know what its actual name is, so I just threw every word into this video's title and hoped that something stuck. |
Цитата:
|
Цитата:
Код:
param( |
Адова регулярка. А поизящнее никак? Ведь Invoke-WebRequest уже парсит страницу. Что-то типа
Код:
$url.parsedhtml.getElementsByName("description") |
Такое "направление" называется Document Object Model - DOM.
|
1. у них есть API по ключу, откуда можно взять JSON или XML.
2. DOM динамический, такого span в сыром ответе нету. 3. Есть вариант вытащить JSON и взять оттуда. Код:
if ((Invoke-WebRequest 'https://www.youtube.com/watch?v=HZTStHzWRxM' Код:
$youtube_video_id = 'HZTStHzWRxM' |
Цитата:
Код:
$url = Invoke-WebRequest https://www.youtube.com/watch?v=HZTStHzWRxM |
Цитата:
Можно, конечно, попытаться даже парсить скрипты, но там есть только это (что можно распарсить с xpath, через PowerHTML): Код:
<meta name="description" content="Don't know what its actual name is, so I just threw every word into this video's title and hoped that something stuck. 0:00 - The new feature 0:17 - Slow rol..."> Код:
$url = Invoke-WebRequest https://www.youtube.com/watch?v=HZTStHzWRxM |
Я не настоящий сварщик но я бы скачал бы при помощи youtube-dl json с описанием. А потом из json получил бы что нужно. Ютуб время от времени меняет дизайн страниц и если юзать youtube-dl то не придётся вручную переписывать код. Достаточно обновить youtube-dl.
Пишу по памяти:
Код:
set _url=https://www.youtube.com/watch?v=GfO-3Oir-qM&hd=1 |
Да, после ydl надо так:
Код:
(gc 'C:\temp\file.info.json' |ConvertFrom-Json).description |
|
Цитата:
Код:
--write-description #Write video description to a .description file |
|
Время: 11:21. |
Время: 11:21.
© OSzone.net 2001-