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

  • Май 22, 2012, 14:38:04 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

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

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: [Автоматизация] Сохранение файла по ссылке  (Прочитано 512 раз)

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

k37 [?]

  • Новичок
  • *
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: v3.3.6.1
    • Награды
Требуется сохранить файл по ссылке. Написал код.

Код: AutoIt [Выделить]
#include <IE.au3>

$oIE = _IECreate('http://fs.rts.ru/files/2892',0,1)
    _IELoadWait ($oIE)
    $oLinks = _IELinkGetCollection($oIE)
    For $oLink in $oLinks
        ConsoleWrite(_IEPropertyGet($oLink, "innerText") & @CRLF)
        if StringInStr(_IEPropertyGet($oLink, "innerText"), "Правила совершения") > 0 Then
            _IEAction($oLink, "click")
            while not WinExists("Загрузка файлов")
                Sleep(1000)
            WEnd
        endif
    Next   
 
В результате в IE8 возникает сообщение
"Чтобы помочь обеспечению безопасности, Internet Explorer заблокировал загрузку файлов на компьютер с этого веб-узла. Щелкните здесь для выбора параметров..."
Я щелкаю, нажимаю "загрузить файл..." окно с сохранением не появляется.
Если просто щелкнуть на ссылку мышкой вручную, то сразу возникает окно о сохранении файла.
Что я не так делаю?




  Записан

Александр [?]

  • joiner
  • Продвинутый
  • ***
  • Репутация: 78
  • Online Online
  • Пол: Мужской
  • Сообщений: 446
  • Версия AutoIt: 3.3.6.1-3.3.8.0
    • Награды
Re: [Автоматизация] Сохранение файла по ссылке
« Ответ #1, Отправлен: Февраль 22, 2012, 23:23:23 »
снизить уровень безопасности в настройках браузера
и можно загрузить файл по другому. на странице полная ссылка к файлу выглядит так http://fs.rts.ru/files/2892/8901
его можно загрузить так
Код: AutoIt [Выделить]
InetGet('http://fs.rts.ru/files/2892/8901','file.doc')




  Записан

Александр [?]

  • joiner
  • Продвинутый
  • ***
  • Репутация: 78
  • Online Online
  • Пол: Мужской
  • Сообщений: 446
  • Версия AutoIt: 3.3.6.1-3.3.8.0
    • Награды
Re: [Автоматизация] Сохранение файла по ссылке
« Ответ #2, Отправлен: Февраль 23, 2012, 09:52:04 »
k37
вот нечто ..что отдаленно похоже на то, что нужно...
конечно бы хорошо очистить ссылки в комбо от мусора, но я не спец в регулярных выражениях
собрал из примеров с форума и справки :)

Код: AutoIt [Выделить]
#include <IE.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Array.au3>

$clean = FileOpen('link.txt', 2)
FileClose($clean)
$oIE = _IECreate('http://fs.rts.ru/files/2892', 0, 0)
Dim $aRecords

$oLinks = _IETagNameGetCollection($oIE, 'a')
For $oLink In $oLinks
    ;MsgBox(0, '', $oLink.InnerText & @CRLF &  $oLink.href)
    FileWrite('link.txt', $oLink.InnerText & @CRLF)
    FileWrite('link.txt', $oLink.href & @CRLF)
Next
_IEQuit($oIE)

_FileReadToArray("link.txt", $aRecords)
$Lines = _ArrayToString($aRecords, '|', 1)
$Form1 = GUICreate("Бла Бла", 850, 90, 483, 253)
$Combo1 = GUICtrlCreateCombo("", 8, 26, 750, 25)
GUICtrlSetData($Combo1, $Lines)
$Button1 = GUICtrlCreateButton("скачать", 760, 55, 60, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $save_file = FileSaveDialog('', '', '(*.doc)')
            $hDownload = InetGet(GUICtrlRead($Combo1), $save_file & '.doc', 1, 1)
            Do
                Sleep(250)
            Until InetGetInfo($hDownload, 2)
            Local $aData = InetGetInfo($hDownload)
            InetClose($hDownload)
            MsgBox(0, "", "Количество прочитанных байт: " & $aData[0] & @CRLF & "Размер: " & $aData[1])
    EndSwitch
WEnd
 




  Записан

Zaramot [?]

  • AutoIt Гуру
  • *****
  • Репутация: 456
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 887
  • Версия AutoIt: v3.3.8.1
  • I ♥ AutoIt
    • Награды
Re: [Автоматизация] Сохранение файла по ссылке
« Ответ #3, Отправлен: Февраль 23, 2012, 13:50:57 »
Все просто  :):
Код: AutoIt [Выделить]
#include <IE.au3>

$oIE = _IECreate('http://fs.rts.ru/files/2892',0,1)
    _IELoadWait ($oIE)
    $oLinks = _IELinkGetCollection($oIE)
    For $oLink in $oLinks
        ConsoleWrite(_IEPropertyGet($oLink, "innerText") & @CRLF)
        if StringInStr(_IEPropertyGet($oLink, "innerText"), "Правила совершения") > 0 Then
            Send('{LCTRL DOWN}')
            _IEAction($oLink, "click")
            Send('{LCTRL UP}')
            while not WinExists("Загрузка файлов")
                Sleep(1000)
            WEnd
        endif
    Next




  Записан

Александр [?]

  • joiner
  • Продвинутый
  • ***
  • Репутация: 78
  • Online Online
  • Пол: Мужской
  • Сообщений: 446
  • Версия AutoIt: 3.3.6.1-3.3.8.0
    • Награды
Re: [Автоматизация] Сохранение файла по ссылке
« Ответ #4, Отправлен: Февраль 23, 2012, 14:10:19 »
Zaramot
оба варианта - твой и из первого поста у меня срабатывают одинаково: запуск браузера и появляется предложение сохранить ( у меня вынь 7 с IE9).




  Записан

k37 [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: v3.3.6.1
    • Награды
Re: [Автоматизация] Сохранение файла по ссылке
« Ответ #5, Отправлен: Февраль 24, 2012, 18:09:03 »
Последний вариант работает прекрасно! Только периодически не срабатывает
Код: AutoIt [Выделить]
 Send('{LCTRL UP}')
Как гарантированно отключить
Код: AutoIt [Выделить]
Send('{LCTRL DOWN}')
Я пробовал просто
Код: AutoIt [Выделить]
           
            Send('{LCTRL DOWN}')
            Sleep(1000)
            Send('{LCTRL UP}')
            Sleep(1000)
            Send('{LCTRL UP}')
            Sleep(1000)
            Send('{LCTRL UP}')
 
Но тут контрол оставался нажатым всегда. Подскажите пожалуйста как его отключить?




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Сохранение файлов(файла)
AutoIt для новичков
bulldog5293 0 767 Последний ответ Апрель 24, 2010, 12:33:58
от bulldog5293
Загрузка файла из HTTPS зоны по непрямой ссылке
AutoIt для новичков
Pavel 5 1155 Последний ответ Август 04, 2010, 04:21:09
от Garrett
Скрипт и сохранение файла Excel, который открыт не весть где...
AutoIt для новичков
AndreyK 2 681 Последний ответ Декабрь 09, 2010, 11:01:43
от akoulev
[Сеть, интернет] Переход по ссылке и загрузка файла через щелчок мышью
Стол заказов
dimart 9 1723 Последний ответ Март 29, 2011, 20:51:01
от madmasles
[Окна, Диалоги] Сохранение путя к папке с помощью ini файла
AutoIt для новичков
COKOL 5 847 Последний ответ Март 14, 2011, 01:18:48
от beve
Сохранение и вставка текста из txt файла.
AutoIt для новичков
uppdrag 5 653 Последний ответ Октябрь 14, 2011, 14:46:10
от Redline
[Сеть, интернет] InetGet-Скачивание и сохранение файла .exe
AutoIt для новичков
den-x 4 503 Последний ответ Октябрь 15, 2011, 10:20:36
от den-x
[Автоматизация] Автоматическое сохранение плейлиста для GOM player
Примеры и рабочие проекты
ordvtaigc 2 356 Последний ответ Февраль 24, 2012, 12:38:04
от Zaramot
[Автоматизация] Как привязать кнопку к ссылке
AutoIt для новичков
HCA911 1 215 Последний ответ Март 07, 2012, 10:39:10
от Yashied
Как узнать размер файла по ссылке?
AutoIt для новичков
Realetive 6 299 Последний ответ Март 13, 2012, 23:21:38
от CreatoR


Реклама