Что нового

[Сеть, интернет] Получение данных о канале Youtube

igorit

Новичок
Сообщения
25
Репутация
0
Всем привет!
Можете подсказать? Как получить количество подписчиков канала Youtube? Поиск ничего не дал (может пропустил?). Помогите, пожалуйста примером. Если тема уже подымалась, то дайте, пожалуйста ссылку. Заранее спасибо!
 

Dima1337

Осваивающий
Сообщения
186
Репутация
24
Код:
#include <IE.au3>
#include <Array.au3>

$url = InputBox("Тест","Введите ссылку на видео:")
$oIE = _IECreate($url,'',1) ;Убрать в ручную звук в IE
_IELoadWait($oIE)
$oLinks = _IELinkGetCollection($oIE)

For $oLink in $oLinks
    If StringInStr($oLink.href, "/channel/") Then
		$url = $oLink.href
		$uChannel = StringTrimLeft($url,32)
		ExitLoop
    EndIf
Next

ConsoleWrite("Channel: " & $uChannel & @CRLF)

_IENavigate($oIE,'https://socialblade.com/')
$oChannel = _IEGetObjById($oIE, 'SearchInput')
_IEFormElementSetValue($oChannel, $uChannel)
$hwnd = _IEPropertyGet($oIE, "hwnd")
ControlSend($hwnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")
Sleep(1000)

_IELoadWait($oIE)

$oHTML=_IEBodyReadText($oIE)

$oHTML = StringTrimLeft($oHTML,StringInStr($oHTML,"Subscribers",0,2) + 11)
$oHTML = StringSplit($oHTML, ' ')
$subs = StringTrimLeft($oHTML[1],1)
ConsoleWrite("Subscribers: " & $subs & @CRLF)

_IEQuit($oIE)

MsgBox(0,'Тест','Подписчиков у блогера: ' & $subs)
 

Tempo

Скриптер
Сообщения
598
Репутация
192
Код:
Global $sURL, $vRet, $vName, $iError
$sURL = InputBox(Chr(0), "Введите ссылку на канал/видео:", Default, Default, 400, 100)
If @error Then Exit
SplashTextOn(Null, "Подождите...", 140, 40, Default, Default, 33)
If Not StringInStr($sURL, "https://") Then $sURL = "https://" & $sURL
If Not StringInStr($sURL, "/channel/") Then
	$vRet = StringRegExp(BinaryToString(InetRead($sURL, 17), 4), '<meta.*?itemprop="channelId".*?content="(.*?)">', 1)
	If Not @error Then
		$sURL = "https://www.youtube.com/channel/" & $vRet[0]
	Else
		SplashOff()
		MsgBox(16, Null, "Не удалось получить кол-во подписчиков")
		Exit
	EndIf
EndIf
$vRet = BinaryToString(InetRead($sURL, 17), 4)
$vName = StringRegExp($vRet, '<meta.*?name="title".*?content="(.*?)">', 1)
If Not @error Then $vName = $vName[0]
$vRet = StringRegExp($vRet, '<span.*?class=".*?subscribed.*?title=".*?>(.*)></span>', 1)
$iError = @error
SplashOff()
If Not $iError Then
	MsgBox(64, $vName, StringRegExpReplace($vRet[0], "[^0-9]", Null) & " подписчиков")
Else
	MsgBox(16, Null, "Не удалось получить кол-во подписчиков")
EndIf
 
Верх