Что нового

Закачка файла с Uploadrar

eus_deus

Новичок
Сообщения
118
Репутация
0
Всем привет!
Не сидится в тишине на карантине, вот я и подумал - а можно ли автоматизировать закачку файлов с файлообменника uploadrar?
Например, имеем ссылку
Код:
https://uploadrar.com/ez8a0pw72p3r

Далее я думал использовать
Код:
_InetGetSource()

для получения исходного кода и потом регуляркой выдрать ссылку, но, как оказалось, ссылка, скорее всего, генерируется где-то, так как после прошествия таймера и нажатия кнопки генерации ссылки адрес страницы не меняется, а вид ее уже абсолютно другой. Может кто натолкнуть на мысль по этому вопросу?
Всем спасибо и здоровья!
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Ссылка есть , можно не ждать 12 сек
Код:
"http://mob1ledev1ces.com/r/?token=c0de5723de6cc3629a0770d4336d4b2854033eab&q=punto_switcher_4.4.4.489.zip"
 
Автор
E

eus_deus

Новичок
Сообщения
118
Репутация
0
Ага, я тоже поначалу так подумал, и регулярку составил. Только нужная ссылка на файл вот такая:
Код:
http://fs2.uploadrar.com:182/d/n7s75ntzappay7753ghpvzmft2roopqx5q4tfsjj6obfnpt7emjuvt3p7ek4dodokuagzizj/punto_switcher_4.4.4.489.zip
Такая по крайне мере на 8 часов и для моего IP
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вот так попадаем на страницу закачки:

Код:
#include <IE.au3>

$sURL = 'https://uploadrar.com/ez8a0pw72p3r'
$bVisible = 1
$oIE = _IECreate($sURL, 0, $bVisible)

$oLink = _IELinkClickByText($oIE, 'Direct Link Download')
_IELoadWait($oIE, 200, 5000)


А вот уже вытащить ссылку думаю не так просто, там она шифруется...
 
Автор
E

eus_deus

Новичок
Сообщения
118
Репутация
0
CreatoR, а почему тогда нельзя нажимать на другую кнопку?
Типа того

Код:
#include <IE.au3>
$sURL = 'https://uploadrar.com/ez8a0pw72p3r'
$bVisible = 1
$oIE = _IECreate($sURL, 0, $bVisible)
Sleep(12000)
$oLink = _IELinkClickByText($oIE, 'Create download link')
_IELoadWait($oIE, 200, 5000)

Если бы выходило, то на той странице уже можно получать прямую ссылку (с теми же правда ограничениями - 8 часов и один IP)
Но - не выходит
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Потому что "Create download link" это не ссылка.

Вроде так работает:

Код:
#include <IE.au3>

$sURL = 'https://uploadrar.com/ez8a0pw72p3r'
$iVisible = 0
$iWait = 14 ;Seconds

$oIE = _IECreate($sURL, 0, $iVisible)
Sleep($iWait * 1000)

$oLink = _IEGetObjById($oIE, 'downloadbtn')
$oLink.Click()
_IELoadWait($oIE, 1000, 5000)

$oDirect_Link = _IEGetObjById($oIE, 'direct_link')
$sDirect_Link = $oDirect_Link.ChildNodes.Item(0).href

_IEQuit($oIE)

MsgBox(64, @ScriptName, 'Direct Link: ' & @CRLF & $sDirect_Link)
 
Автор
E

eus_deus

Новичок
Сообщения
118
Репутация
0
Вроде так работает:
Да, так вроде работает. Частности буду выяснять в процессе. Я вообще не работал с этой UDF , надо почитать детальнее. Тему считаю решенной, вот только не могу найти, где ее таковой отметить
Сообщение автоматически объединено:

Снова доброго времени суток!
Обменник тот же - uploadrar,
но они что то там поменяли, и теперь код, предложенный выше, не работает.
Отрезок такой:
Код:
#include <IE.au3>
$sLink = 'https://uploadrar.com/jazhkelvycx5'
$oIE = _IECreate($sLink,0,0)
$aLink = _IEGetObjByName($oIE, 'method_free')
$aLink.Click()
_IELoadWait($oIE, 1000, 5000)
Sleep(15000)
$oLink = _IEGetObjById($oIE, 'downloadbtn')
$oLink.Click()
_IELoadWait($oIE, 1000, 5000)
$oDirect_Link = _IEGetObjById($oIE, 'direct_link')
$sDirect_Link = $oDirect_Link.ChildNodes.Item(0).href
MsgBox (64,@ScriptName, 'Direct Link: '  & $sDirect_Link)
_IEQuit($oIE)

Этот кусок я добавлял, так как ввели выбор - бесплатное скачивание или премиум:
Код:
$aLink = _IEGetObjByName($oIE, 'method_free')
$aLink.Click()
_IELoadWait($oIE, 1000, 5000)

Но в итоге - в переменную $sDirect_Link приходит ссылка:
Код:
http://fs14.uploadrar.com:182/d/ntsrdel4appay775t2hpl7whs5c5kxuklvlan5rv6gasmggftc526k24zuyo2meuyibj6md7/viber_14.0.0.51.zip
Вместо такой (рабочей):
Код:
https://fs14.uploadrar.com/d/ntsrdel4appay775t2hpl7whs5c5kxuklvlan5rv6gasmggftdkfkjkfzua7qzoznavcbvfs/viber_14.0.0.51.zip
Браузер это обрабатывает, Autoit - нет. Я понять такую ссылку тоже пока не могу. Есть ли способ заставить это понимать?
 
Последнее редактирование:

gunter123

Продвинутый
Сообщения
159
Репутация
69
Добавьте строчку чтобы убрать лишние символы из ссылки:

Код:
...
$sDirect_Link = $oDirect_Link.ChildNodes.Item(0).href
$sDirect_Link = StringRegExpReplace($sDirect_Link, '\.com:\d+/', '.com/')
MsgBox...
 
Автор
E

eus_deus

Новичок
Сообщения
118
Репутация
0
Добавьте строчку ...
Так это не поможет, ведь набор символов после d/ различный.
Наверное, перенаправление на уровне сервера
Раньше работало примерно так (удалил лишнее с кода). Теперь закачка не работает. Чем еще можно качать, кроме inetget:
Код:
#include <IE.au3>
#include <INet.au3>
#include <WinAPI.au3>

$sLink = 'https://uploadrar.com/jazhkelvycx5'
$oIE = _IECreate($sLink,0,1)
$aLink = _IEGetObjByName($oIE, 'method_free')
$aLink.Click()
_IELoadWait($oIE, 1000, 5000)
Sleep(15000)
$oLink = _IEGetObjById($oIE, 'downloadbtn')
$oLink.Click()
_IELoadWait($oIE, 1000, 5000)
$oDirect_Link = _IEGetObjById($oIE, 'direct_link')
$sDirect_Link = $oDirect_Link.ChildNodes.Item(0).href
MsgBox (64,@ScriptName, 'Direct Link: '  & $sDirect_Link)
_IEQuit($oIE)
ProgressOn('Скачивание файла', 'hjgjgfhj', '0 %', -1, -1, 16)
$hDownload = InetGet($sDirect_Link, @DesktopCommonDir&'\'&StringRegExpReplace($sDirect_Link,'(^.*)\/(.*)$','\2'), 3, 1)
Do
    If InetGetInfo($hDownload, 1) Then
        $iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
        ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) &     ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
    EndIf
    Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
 
Последнее редактирование:

gunter123

Продвинутый
Сообщения
159
Репутация
69
Вот такой код работает, ссылка была рабочая, надо просто поменять название файла, куда сохранять архив

Код:
#include <IE.au3>
#include <INet.au3>
#include <WinAPI.au3>

$sLink = 'https://uploadrar.com/jazhkelvycx5'

$oIE = _IECreate($sLink, 0, 1)
$aLink = _IEGetObjByName($oIE, 'method_free')
$aLink.Click()

_IELoadWait($oIE)
Sleep(10000)
Do
   Sleep(100)
   $oLink = _IEGetObjById($oIE, 'downloadbtn')
Until Not @error

$oLink.Click()

_IELoadWait($oIE, 1000, 5000)

$sDirect_Link = $oIE.document.querySelector('#direct_link > a').href
ConsoleWrite($sDirect_Link)

_IEQuit($oIE)

ProgressOn('Скачивание файла', 'hjgjgfhj', '0 %', -1, -1, 16)
$hDownload = InetGet($sDirect_Link, @DesktopDir & '\' & 'viber.zip', 3, 1)
Do
    If InetGetInfo($hDownload, 1) Then
        $iPersent = Round((InetGetInfo($hDownload, 0) / InetGetInfo($hDownload, 1)) * 100)
        ProgressSet($iPersent, $iPersent & ' %, ' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 0)) &     ' (' & _WinAPI_StrFormatByteSize(InetGetInfo($hDownload, 1)) & ')')
    EndIf
    Sleep(500)
Until InetGetInfo($hDownload, 2)
InetClose($hDownload)
ProgressOff()
 
Автор
E

eus_deus

Новичок
Сообщения
118
Репутация
0
О, бан мне за такую тупость!!!
Искал ошибки везде, а проверить наличие папки для закачки не удосужился! (чего то я думал, что недостающие элементы путей создаются)
Сейчас намутим проверочку на наличие папки и создание ее в случае отсутствия
 
Верх