Что нового

Автоматизировать скриптом наведение курсора на ссылку, через Chrome

Andrewt

Новичок
Сообщения
4
Репутация
0
Всем доброго дня, не судите строго только учусь и вникаю. Как автоматизировать автонаведение курсора мыши на ссылки, при наведении курсора подгружается фото, при наведении в консоли получаем это <div class="tumb" style="display: none;"><img src="t/290/289490.jpg"></div>


Суть в чем, при наведении подгружается изображение и все картинки можно разом скачать.
 

SealAlbinos

Продвинутый
Сообщения
152
Репутация
57
Интереса ради проверить ссылки на изображения не пробовали?
К примеру как она выглядит не в прогруженном варианте (в плохом качестве) и потом уже как в хорошем и сравнить.
Если сайт работает как и большинство что встречал, то будет явный намек, как из сжатого сделать оригинальное качество просто поменяв, что-то в ссылке. А потом уже просто написать для себя скрипт, который будет автоматически менять ссылки, нежели чем заморачиваться с наводкой на ссылки
 
Автор
A

Andrewt

Новичок
Сообщения
4
Репутация
0
Интереса ради проверить ссылки на изображения не пробовали?
К примеру как она выглядит не в прогруженном варианте (в плохом качестве) и потом уже как в хорошем и сравнить.
Если сайт работает как и большинство что встречал, то будет явный намек, как из сжатого сделать оригинальное качество просто поменяв, что-то в ссылке. А потом уже просто написать для себя скрипт, который будет автоматически менять ссылки, нежели чем заморачиваться с наводкой на ссылки
Смысл в этом есть и не малый , но как же массово вытащить изображения? В сжатом состоянии имеем ссылку site:/t/290/image.jpg и в хорошем качестве site:/userfiles/image/290/image.jpg. Вопрос в чем, файлов много и картинки могут лежать рандомно то в папке site:/userfiles/image/290/image.jpg то site:/userfiles/image/160/image.jpg. Как можно скриптом вытащить все файлы на странице?
 

SealAlbinos

Продвинутый
Сообщения
152
Репутация
57
Честно тут не скажу, так как не совсем понимаю как все выглядит, особенно в исходнике страницы сайта
как вариант посмотреть, что получится парсить
к примеру использовать winhttp.winhttprequest.5.1
Код:
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("Get", "ссылка на сайт где изображения")
;$oHTTP.SetRequestHeader("Cookie", "") ;если вдруг нужен, то указать
$oHTTP.Send('')
$sReceived = $oHTTP.ResponseText ; исходник страницы

и вот исходник страницы парсить и вытаскивать данные, если есть там папки, которые являются отдельными ссылками, то вытаскиваем эти ссылку и по очереди получаем с них данные и парсим изображения. А там уже циклом изменишь как ссылка должна выглядить для оригинального качества
 
Последнее редактирование:
Автор
A

Andrewt

Новичок
Сообщения
4
Репутация
0
Честно тут не скажу, так как не совсем понимаю как все выглядит, особенно в исходнике страницы сайта
как вариант посмотреть, что получится парсить
к примеру использовать winhttp.winhttprequest.5.1
Код:
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("Get", "ссылка на сайт где изображения")
;$oHTTP.SetRequestHeader("Cookie", "") ;если вдруг нужен, то указать
$oHTTP.Send('')
$sReceived = $oHTTP.ResponseText ; исходник страницы

и вот исходник страницы парсить и вытаскивать данные, если есть там папки, которые являются отдельными ссылками, то вытаскиваем эти ссылку и по очереди получаем с них данные и парсим изображения. А там уже циклом изменишь как ссылка должна выглядить для оригинального качества
Пока не особо понятно. Вот к примеру сайт https://agdl.ru/price.html#1000047, тут как я понял скриптом уже заложено скрытие фото и его подгузка в tumb, сервис выгрузки сайта игнорируют заскриптованные данные
 

SealAlbinos

Продвинутый
Сообщения
152
Репутация
57
Как вариант
там все работает через json и уже в нем копаться и все вытаскивать, но скажу так, аутойт не хвалится своими мощностями и может довольно долго обрабатывать
Код:
#include <Json.au3>
DirCreate("Download")
HotKeySet('{Esc}', '_Exit')

InetGet("https://agdl.ru/jsonGoods.py?id=New",@ScriptDir & "\1.json",1)

$Json = FileRead(FileOpen(@ScriptDir & "\1.json"))
$Json = Json_Decode($Json)
$Count = UBound(Json_ObjGet($json, 'goods'))

For $i = 0 To $Count - 1
    $Id = Json_Get($json, '[goods]['&$i&'][Id]')
    $Name = Json_Get($json, '[goods]['&$i&'][T]')
    ;MsgBox(0,$Id,$Name)
    InetGet("https://agdl.ru/jsonWO.py?id="&$Id,@ScriptDir & "\2.json",1)
    $JsonPic = FileRead(FileOpen(@ScriptDir & "\2.json"))
    $JsonPic = Json_Decode($JsonPic)
    $CountPic = UBound(Json_ObjGet($JsonPic, 'images'))
    For $p = 0 To $CountPic - 1
        $Pic = Json_Get($JsonPic, '[images]['&$p&']')
  
        ;ConsoleWrite($Id&" - " & $Name & ":"& "https://agdl.ru/"&$Pic & @CRLF)
        ;MsgBox(0,"","https://agdl.ru/"&$Pic)
        ;ShellExecute("https://agdl.ru/"&$Pic)
      
        DirCreate(@ScriptDir & "\Download\" & $Id)
        InetGet("https://agdl.ru/"&$Pic, @ScriptDir & "\Download\" & $Id & "\" & _GetValidFileName($Pic),1)
        sleep(100)
    Next
Next

Func _Exit()
    Exit
EndFunc

Func _GetValidFileName($sString, $sPattern = '[*?\\/|:<>"]', $sReplace = '_')
    If StringStripWS($sString, 8) = '' Then
        Return $sString
    EndIf

    If StringLen($sString) > 200 Then
        $sString = StringLeft($sString, 98) & '...' & StringRight($sString, 99)
    EndIf

    $sString = StringRegExpReplace($sString, $sPattern, $sReplace)
    Return SetExtended(@extended, StringRegExpReplace($sString, '(' & $sReplace & '+)', $sReplace))
EndFunc



Или если не сохранять файл ответа сайта, а сразу напрямую
Код:
#include <Json.au3>
DirCreate("Download")
HotKeySet('{Esc}', '_Exit')

$Json = Json_Decode(BinaryToString(InetRead("https://agdl.ru/jsonGoods.py?id=New",1)))
$Count = UBound(Json_ObjGet($json, 'goods'))

For $i = 0 To $Count - 1
    $Id = Json_Get($json, '[goods]['&$i&'][Id]')
    $Name = Json_Get($json, '[goods]['&$i&'][T]')
    MsgBox(0,$Id,$Name)
    $JsonPic = Json_Decode(BinaryToString(InetRead("https://agdl.ru/jsonWO.py?id="&$Id,1)))
    $CountPic = UBound(Json_ObjGet($JsonPic, 'images'))
    For $p = 0 To $CountPic - 1
        $Pic = Json_Get($JsonPic, '[images]['&$p&']')

        ;ConsoleWrite($Id&" - " & $Name & ":"& "https://agdl.ru/"&$Pic & @CRLF)
        MsgBox(0,"","https://agdl.ru/"&$Pic)
        ;ShellExecute("https://agdl.ru/"&$Pic)

        DirCreate(@ScriptDir & "\Download\" & $Id)
        InetGet("https://agdl.ru/"&$Pic, @ScriptDir & "\Download\" & $Id & "\" & _GetValidFileName($Pic),1)
        sleep(100)
    Next
Next

Func _Exit()
    Exit
EndFunc

Func _GetValidFileName($sString, $sPattern = '[*?\\/|:<>"]', $sReplace = '_')
    If StringStripWS($sString, 8) = '' Then
        Return $sString
    EndIf

    If StringLen($sString) > 200 Then
        $sString = StringLeft($sString, 98) & '...' & StringRight($sString, 99)
    EndIf

    $sString = StringRegExpReplace($sString, $sPattern, $sReplace)
    Return SetExtended(@extended, StringRegExpReplace($sString, '(' & $sReplace & '+)', $sReplace))
EndFunc
 

Вложения

  • Json.au3
    22.9 КБ · Просмотры: 10
Последнее редактирование:
Автор
A

Andrewt

Новичок
Сообщения
4
Репутация
0
Как вариант
там все работает через json и уже в нем копаться и все вытаскивать, но скажу так, аутойт не хвалится своими мощностями и может довольно долго обрабатывать
Код:
#include <Json.au3>
HotKeySet('{Esc}', '_Exit')

InetGet("https://agdl.ru/jsonGoods.py?id=New",@ScriptDir & "\1.json")

$Json = FileRead(FileOpen(@ScriptDir & "\1.json"))
$Json = Json_Decode($Json)
$Count = UBound(Json_ObjGet($json, 'goods'))

For $i = 0 To $Count - 1
    $Id = Json_Get($json, '[goods]['&$i&'][Id]')
    $Name = Json_Get($json, '[goods]['&$i&'][T]')
    MsgBox(0,$Id,$Name)
    InetGet("https://agdl.ru/jsonWO.py?id="&$Id,@ScriptDir & "\2.json")
    $JsonPic = FileRead(FileOpen(@ScriptDir & "\2.json"))
    $JsonPic = Json_Decode($JsonPic)
    $CountPic = UBound(Json_ObjGet($JsonPic, 'images'))
    For $p = 0 To $CountPic - 1
        $Pic = Json_Get($JsonPic, '[images]['&$p&']')
        MsgBox(0,"","https://agdl.ru/"&$Pic)
        ShellExecute("https://agdl.ru/"&$Pic)
    Next
Next

Func _Exit()
    Exit
EndFunc
Какой же я 0 в этом. Спасибо большое опробую, отпишусь думаю уже завтра. Суть почти понятна
 
Верх