Русское сообщество AutoIt

  • Февраль 23, 2012, 00:16:19 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Создан файловый архив для участников форума.

Закачивайте свои файлы и получайте рейтинг, прямые ссылки, и т.п.

Для изображений и скриншотов по прежнему есть AUTOIT.RV.UA

* Реклама

Автор Тема: [Сеть, интернет] Запись потокового видео и аудио  (Прочитано 1302 раз)

0 Пользователей и 1 Гость смотрят эту тему.

tref777 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 13
  • Версия AutoIt: Avtoit3
    • Награды
Я написал такой скрипт:
Код: AutoIt [Выделить]
#include <IE.au3>
#include <file.au3>
Dim $aRecords
$name = InputBox("Загрузка аудио", "Введите название песни:")
$oIE = _IECreate("vkontakte.ru/audio", 0, 0)
$sHTML = _IEBodyReadHTML($oIE)
FileWrite("temphtml.txt", $sHTML)
_FileReadToArray("temphtml.txt", $aRecords)
For $i = 1 To $aRecords[0]
    $location = StringInStr($aRecords[$i], $name)
    If $location <> 0 Then
        For $i = $i To 1 Step -1
        $SoundLoc1 = StringInStr($aRecords[$i], "http://cs")
        $SoundLoc2 = StringInStr($aRecords[$i], ".mp3")
        $count = $SoundLoc2 - $SoundLoc1
        $string = StringMid($aRecords[$i], $SoundLoc1, $count)
           If $SoundLoc1 <> 0 AND $SoundLoc2 <> 0 Then
               ExitLoop
           EndIf
       Next
       ExitLoop
       EndIf
   Next
        InetGet($string & ".mp3", $name & ".mp3")
    ProcessClose("iexplore.exe")
    FileRecycle("temphtml.txt")

 

Он работает только для первых песен в списке и при условии что выполнен вход в ВК, через IE
« Последнее редактирование: Ноябрь 14, 2011, 07:12:14 от tref777 »



  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 255
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 410
  • Версия AutoIt: 3.3.6.1
    • Награды
Давно делал парсер с выводом форматов (тип кодека видео и разрешение по короткой стороне) для youtube, но они снова сменили код, вот обновленный:




  Записан
Приму в дар инвайт на dirty

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 71
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 667
  • Версия AutoIt: 3.3.6.1
    • Награды
мне кажется так будет надежнее, сделать скрытый режим.
Код: AutoIt [Выделить]
#include <IE.au3>
#include <file.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $aRecords
$name = InputBox("Загрузка аудио", "Введите название песни:")
$Form1 = GUICreate("Form1", 1, 1, 9999, 9999)
$Obj1 = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 616, 400)


GUISetState(@SW_HIDE)

$oIE = _IENavigate($Obj1, "vkontakte.ru/audio")


$sHTML = _IEBodyReadHTML($Obj1)
FileWrite("temphtml.txt", $sHTML)
_FileReadToArray("temphtml.txt", $aRecords)
For $i = 1 To $aRecords[0]
    $location = StringInStr($aRecords[$i], $name)
    If $location <> 0 Then
        For $i = $i To 1 Step -1
        $SoundLoc1 = StringInStr($aRecords[$i], "http://cs")
        $SoundLoc2 = StringInStr($aRecords[$i], ".mp3")
        $count = $SoundLoc2 - $SoundLoc1
        $string = StringMid($aRecords[$i], $SoundLoc1, $count)
           If $SoundLoc1 <> 0 AND $SoundLoc2 <> 0 Then
               ExitLoop
           EndIf
       Next
       ExitLoop
       EndIf
   Next
        InetGet($string & ".mp3", $name & ".mp3")
    FileRecycle("temphtml.txt")
 



Добавлено: Ноябрь 14, 2011, 07:48:44
Цитата
на этапе Код: AutoIt [Выделить]
InetGet("http://vkontakte.ru/audio","1.txt")
 
возникают проблемы с логином. Насколько я понимаю нужно быть залогиненым из IE, иначе он возвращает код странички авторизации...
да это так, но можно ведь легко авторизоваться.




  Записан
<a href="http://Ganiballlan.narod2.ru/Temp/emff_silk_button.swf?src=http://cs4959.vkontakte.ru/u38372591/audio/506ada136e15.mp3&amp;autostart=yes&amp;repeat=yes&amp;volume=30" target="_blank" class="new_win">http://Ganiballlan.narod2.ru/Temp/emff_silk_button.swf?src=http://cs4959.vkontakte.ru/u38372591/audio/506ada136e15.mp3&amp;autostart=yes&amp;repeat=yes&amp;volume=30</a>

tref777 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 13
  • Версия AutoIt: Avtoit3
    • Награды
Код: AutoIt [Выделить]
InetGet("http://vkontakte.ru/audio", "html")
$file = FileRead("html")
If StringInStr($file, "Чтобы просматривать эту страницу, нужно зайти на сайт") Then
    $login = InputBox("логин", "логин")
    $pass = InputBox("пароль", "пароль")
    InetGet("http://vkontakte.ru/login.php?m=1&email="&$login&"&pass="&$pass, "html")
    $file = InetGet("http://vkontakte.ru/audio", "html")
EndIf
FindBlue()
FindBlack()
    FileRecycle("html")



Func FindBlue()
local $metka1 = ';return false;">'
local $metka2 = '</a> </span>'
local $plus = 16
Local $pos1
Local $start = 1
$file = FileRead("html")
$pos1 = 1
$start = 1
While $pos1 <> 0
$pos1 = StringInStr($file, $metka1, 0, 1, $start)
$pos2 = StringInStr($file, $metka2, 0, 1, $pos1)
$start = $pos1 + 1
$startMid = $pos1 + $plus
$count = $pos2 - $startMid
$name = StringMid($file, $startMid, $count)
If $pos1 <> 0 And $pos2 <> 0 Then
    $linkpos1 = StringInStr($file, 'http://cs', 0, -1, $start)
    $linkpos2 = StringInStr($file, '.mp3', 0, -1, $start)
    $linkStartMid = $linkpos1 + 9
    $linkCount = $linkpos2 - $linkStartMid
    $link = StringMid($file, $linkStartMid, $linkCount)
    InetGet("http://cs"&$link&".mp3", $name&".mp3")
    EndIf
WEnd
EndFunc


Func FindBlack()
local $metka1 = 'class="title">'
local $metka2 = '</span><span'
local $plus = 14
Local $pos1
Local $start = 1
$file = FileRead("html")
$pos1 = 1
$start = 1
While $pos1 <> 0
$pos1 = StringInStr($file, $metka1, 0, 1, $start)
$pos2 = StringInStr($file, $metka2, 0, 1, $pos1)
$start = $pos1 + 1
$startMid = $pos1 + $plus
$count = $pos2 - $startMid
$name = StringMid($file, $startMid, $count)
If $pos1 <> 0 And $pos2 <> 0 Then
    $linkpos1 = StringInStr($file, 'http://cs', 0, -1, $start)
    $linkpos2 = StringInStr($file, '.mp3', 0, -1, $start)
    $linkStartMid = $linkpos1 + 9
    $linkCount = $linkpos2 - $linkStartMid
    $link = StringMid($file, $linkStartMid, $linkCount)
    InetGet("http://cs"&$link&".mp3", $name&".mp3")
EndIf
WEnd
EndFunc




 


если кому не лень напишите интерфейс нормальный. Буду благодарен))  :)




  Записан

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
Код: AutoIt [Выделить]
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>


Global $metka1 = ';return false;">', $metka2 = '</a> </span>', $plus = 16
Global $metka12 = 'class="title">', $metka22 = '</span><span', $plus2 = 14


$MainForm = GUICreate("Скачивание музыки с контакта", 352, 220, 192, 124)
GUICtrlCreateTab(8, 8, 329, 201)
GUICtrlCreateTabItem("Главная")
$ProgressDownload = GUICtrlCreateProgress(16, 152, 313, 17)
$ID_Login = GUICtrlCreateInput("Логин", 16, 65, 145, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$ID_Pass = GUICtrlCreateInput("Пароль", 176, 65, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
GUICtrlSetState(-1, $GUI_DISABLE)
$Download_label = GUICtrlCreateLabel("Статус: ", 16, 104, 313, 41)
GUICtrlCreateLabel("Введите Логин и Пароль: ", 16, 40, 136, 17)
$Cancel_But = GUICtrlCreateButton("Отмена", 112, 176, 121, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
$Login_But = GUICtrlCreateButton("Логин", 226, 37, 100, 20)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)

$String = BinaryToString(InetRead("http://vkontakte.ru/audio"))

If StringInStr($String, "Чтобы просматривать эту страницу, нужно зайти на сайт") Then
    GUICtrlSetState($Login_But, $GUI_ENABLE)
    GUICtrlSetState($ID_Login, $GUI_ENABLE)
    GUICtrlSetState($ID_Pass, $GUI_ENABLE)
    Do
        $nMsg = GUIGetMsg()
    Until $nMsg = $Login_But
    $login = GUICtrlRead($ID_Login)
    $pass = GUICtrlRead($ID_Pass)
    InetRead("http://vkontakte.ru/login.php?m=1&email="&$login&"&pass="&$pass)
    $String = BinaryToString(InetRead("http://vkontakte.ru/audio"))
EndIf

Find($String, $metka1, $metka2, $plus)
Find($String, $metka12, $metka22, $plus2)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func Find($String, $metka1, $metka2, $plus)
Local $pos1 = 1
Local $start = 1

While $pos1 <> 0
$pos1 = StringInStr($String, $metka1, 0, 1, $start)
$pos2 = StringInStr($String, $metka2, 0, 1, $pos1)
$start = $pos1 + 1
$startMid = $pos1 + $plus
$count = $pos2 - $startMid
$name = StringMid($String, $startMid, $count)
ConsoleWrite($pos1 & $pos2)
If $pos1 <> 0 And $pos2 <> 0 Then
    $linkpos1 = StringInStr($String, 'http://cs', 0, -1, $start)
    $linkpos2 = StringInStr($String, '.mp3', 0, -1, $start)
    $linkStartMid = $linkpos1 + 9
    $linkCount = $linkpos2 - $linkStartMid
    $link = StringMid($String, $linkStartMid, $linkCount)
    $hDownload = InetGet("http://cs"&$link&".mp3", @ScriptDir & "\Music\" &$name&".mp3",1,1)
    GUICtrlSetData($Download_label, "Статус:"&@CRLF&"Загрузка: " & $name&".mp3")
    GUICtrlSetState($Cancel_But, $GUI_ENABLE)
    Do
        $Data = InetGetInfo($hDownload)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Cancel_But
                GUICtrlSetData($ProgressDownload, 0)
                Return
        EndSwitch
        GUICtrlSetData($ProgressDownload, $Data[0]/$Data[1]*100)
        Sleep(200)
    Until InetGetInfo($hDownload, 2)
    InetClose($hDownload)
    EndIf
WEnd
EndFunc
Осталось довести до ума  :)




  Записан

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
Довел до ума и переписал функцию. Люблю парсить страницы =)

Используйте на здоровье. Один минус - Скачивает только первые 50 песен.
Код: AutoIt [Выделить]
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

$MainForm = GUICreate("Скачивание музыки с контакта", 352, 220, 192, 124)
GUICtrlCreateTab(8, 8, 329, 201)
GUICtrlCreateTabItem("Главная")
$ProgressDownload = GUICtrlCreateProgress(16, 152, 313, 17)
$ID_Login = GUICtrlCreateInput("Логин", 16, 65, 145, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$ID_Pass = GUICtrlCreateInput("Пароль", 176, 65, 153, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
GUICtrlSetState(-1, $GUI_DISABLE)
$Download_label = GUICtrlCreateLabel("Статус: ", 16, 104, 313, 41)
GUICtrlCreateLabel("Введите Логин и Пароль: ", 16, 40, 136, 17)
$Cancel_But = GUICtrlCreateButton("Старт", 112, 176, 121, 25)
$Login_But = GUICtrlCreateButton("Логин", 226, 37, 100, 20)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Cancel_But
            LoadMusics()
    EndSwitch
WEnd

Func LoadMusics()
    $String = BinaryToString(InetRead("http://vkontakte.ru/audio"))
    GUICtrlSetData($Cancel_But, "Отмена")
If StringInStr($String, "Чтобы просматривать эту страницу, нужно зайти на сайт") Then
    GUICtrlSetState($Login_But, $GUI_ENABLE)
    GUICtrlSetState($ID_Login, $GUI_ENABLE)
    GUICtrlSetState($ID_Pass, $GUI_ENABLE)
    GUICtrlSetData($Download_label, "Статус:"&@CRLF&"Нет авторизации. Введите Логин и Пароль в форму и нажмите Логин")
    Do
        $nMsg = GUIGetMsg()
    Until $nMsg = $Login_But
    $login = GUICtrlRead($ID_Login)
    $pass = GUICtrlRead($ID_Pass)
    InetRead("http://vkontakte.ru/login.php?m=1&email="&$login&"&pass="&$pass)
    GUICtrlSetState($Login_But, $GUI_DISABLE)
    GUICtrlSetState($ID_Login, $GUI_DISABLE)
    GUICtrlSetState($ID_Pass, $GUI_DISABLE)
    $String = BinaryToString(InetRead("http://vkontakte.ru/audio"))
EndIf
    $URLs = StringRegExp ($String, '(?i)(?U).*value="(.+),.+".+', 3)
    $Names = StringRegExp ($String, '(?i)(?U).*onclick=".+">(.+)</span><span class="user">.*', 3)
For $i = 0 To UBound($Names) - 2
    $Names[$i] = StringRegExpReplace($Names[$i],'(</a>|</b>|<span class="title">|<a href="".+onclick="Audio\.showLyrics.+false;">|&#38;#.+;|">|\:)',"")
    $Names[$i] = StringRegExpReplace($Names[$i],'(\\|/)',"_")
    $Names[$i] = StringStripWS($Names[$i],7)
Next

For $i = 0 To UBound($URLs) - 2
    If Not FileExists(@ScriptDir & "\Music") Then DirCreate(@ScriptDir & "\Music")
    $hDownload = InetGet($URLs[$i], @ScriptDir & "\Music\" &$Names[$i]&".mp3",1,1)
    GUICtrlSetData($Download_label, "Статус:"&@CRLF&"Загрузка: " & $Names[$i])
    GUICtrlSetState($Cancel_But, $GUI_ENABLE)
    Do
        $Data = InetGetInfo($hDownload)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Cancel_But
                GUICtrlSetData($Download_label, "Статус:"&@CRLF&"Отменено пользователем.")
                GUICtrlSetData($ProgressDownload, 0)
                GUICtrlSetData($Cancel_But, "Старт")
                Return
        EndSwitch
        GUICtrlSetData($ProgressDownload, $Data[0]/$Data[1]*100)
    Until InetGetInfo($hDownload, 2)
    InetClose($hDownload)
Next
GUICtrlSetData($Cancel_But, "Старт")
EndFunc
 




  Записан

madmasles [?]

  • Модератор
  • *
  • *****
  • Репутация: 1336
  • Online Online
  • Пол: Мужской
  • Сообщений: 3487
  • Версия AutoIt: 3.3.6.1 - 3.3.8.1
    • Награды
Medic84,
Посмотрите этот скрипт CreatoR`a.
Я им пользовался, скачивает быстрее и симпатичнее.

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
madmasles  [?]
Цитата
Я им пользовался, скачивает быстрее и симпатичнее.
Лень переделывать, да и скрипт Creator'a у меня тормозит из за ListViewProgress




  Записан

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
Нажмите для отображения изображения в оригинальном размере.
Ну Вот в общем то - что я напилил за сегодня.  :think:
На Рабочий проект пока не очень тянет, много моментов надо допиливать, но поработать - сойдет =)

VKMD.zip




  Записан

komorov74 [?]

А видео так слабо сделать  :laugh:  ??? Только не убогим Fly а MP4 что бы хотябы ссылки на скачку выдавало!!!!!! Скажу ха это 6 СПАСИБ!!!!!!!!!!!1




  Записан

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
komorov74
У меня времени нет на это. Я сейчас VK_API пишу, как время будет - покажу как это можно сделать. Тем более на самом VK_API




  Записан

Arei [?]

  • Продвинутый
  • ***
  • Репутация: 71
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 667
  • Версия AutoIt: 3.3.6.1
    • Награды
вы файл удалили.




  Записан

Medic84 [?]

  • Администратор
  • *
  • ****
  • Репутация: 146
  • Online Online
  • Пол: Мужской
  • Сообщений: 850
  • Версия AutoIt: 3.3.6.1
    • WWW
    • Награды
Arei
Я его доделывать начал =) Она теперь базируется на VK API... Поэтому убрал, до выхода UDF




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Winamp Library - Управление аудио плеером Winamp
UDF - Пользовательские функции
CreatoR 0 1575 Последний ответ Октябрь 24, 2009, 03:02:25
от CreatoR
[Сеть, интернет] работа с интернет через proxy
AutoIt для новичков
r35p3ct 10 3270 Последний ответ Июль 15, 2010, 15:57:01
от snoitaleR
[Сеть, интернет] Открытие интернет-страницы браузером по умолчанию.
AutoIt для новичков
madmasles 3 4566 Последний ответ Март 16, 2010, 13:10:29
от madmasles
Запись видео с монитора
Примеры и рабочие проекты
Zaramot 5 1731 Последний ответ Сентябрь 17, 2010, 19:13:51
от CreatoR
Библиотека AVIWriter - Запись видео
UDF - Пользовательские функции
CreatoR 10 3033 Последний ответ Август 11, 2011, 12:26:28
от Kaster
[Сеть, интернет] youtube downloader - качаем видео с youtube.com сами
Примеры и рабочие проекты
dwerf 4 1504 Последний ответ Ноябрь 29, 2010, 01:32:35
от Zaramot
Передача потокового видео
AutoIt для новичков
Arei 2 729 Последний ответ Март 03, 2011, 10:53:15
от Max98
Передача аудио потока по TCP
AutoIt для новичков
MockeR 7 615 Последний ответ Июль 03, 2011, 15:35:12
от madmasles
Отправка интернет-запросов по БД и запись результатов в Excel
AutoIt для новичков
Alexaut 2 326 Последний ответ Октябрь 17, 2011, 13:45:37
от Alexaut
[Сеть, интернет] Открытие интернет страницы в окне скрипта с точными размерами
AutoIt для новичков
_Lexa98_ 10 580 Последний ответ Октябрь 26, 2011, 16:13:31
от axlwor


* Реклама

* Последние сообщения на форуме
post Re: Создать гибридный объект из TreeView и ListView
[GUI - Графический интерфейс пользователя] lorents Сегодня в 00:11:17
post Re: Создать объект TreeList
[GUI - Графический интерфейс пользователя] Medic84 Сегодня в 00:09:25
post Re: Вынести текст с експлорера на месседжбокс
[Автоматизация IE и Web-интерфейса] Kaster Февраль 22, 2012, 23:27:02
post Re: [Автоматизация] Сохранение файла по ссылке
[Автоматизация IE и Web-интерфейса] Александр Февраль 22, 2012, 23:23:23
post [Автоматизация] как вынести текст с IE на MsgBox?
[Автоматизация IE и Web-интерфейса] Колян) Февраль 22, 2012, 23:22:00
post Re: Создать объект TreeList
[GUI - Графический интерфейс пользователя] lorents Февраль 22, 2012, 23:20:39
post Re: Создать объект TreeList
[GUI - Графический интерфейс пользователя] AZJIO Февраль 22, 2012, 22:43:46
post Re: Объект TreeList
[GUI - Графический интерфейс пользователя] lorents Февраль 22, 2012, 21:58:25
post Re: TreeList
[GUI - Графический интерфейс пользователя] Medic84 Февраль 22, 2012, 21:56:02
post Создать гибридный объект из TreeView и ListView
[GUI - Графический интерфейс пользователя] lorents Февраль 22, 2012, 21:48:13

* Пользователи онлайн
  • Dot Гостей: 88
  • Dot Скрыт: 2
  • Dot Пользователей: 32
  • Dot Пользователи Online: