Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


1. у них есть API по ключу, откуда можно взять JSON или XML.
2. DOM динамический, такого span в сыром ответе нету.
3. Есть вариант вытащить JSON и взять оттуда.
Код: Выделить весь код
if ((Invoke-WebRequest 'https://www.youtube.com/watch?v=HZTStHzWRxM'
	).Content -match 'ytplayer\.config = ({.+?});') {
	(($matches[1] | ConvertFrom-Json).args.player_response |
		ConvertFrom-Json).videoDetails.shortDescription
}
p.s. так тоже работает, но это вроде бы неофициальный API
Код: Выделить весь код
$youtube_video_id = 'HZTStHzWRxM'
$query_string = Invoke-WebRequest "https://www.youtube.com/get_video_info?video_id=${youtube_video_id}"
Add-Type -AssemblyName 'System.Web'
([System.Web.HttpUtility]::ParseQueryString($query_string).Get('player_response') | ConvertFrom-Json).videoDetails.shortDescription

Последний раз редактировалось Sham, 04-08-2020 в 14:39.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:13, 04-08-2020 | #6