|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] скачать файл из инета из cgi-bin => location.replace |
|
[решено] скачать файл из инета из cgi-bin => location.replace
|
Пользователь Сообщения: 73 |
Профиль | Отправить PM | Цитировать Читаю файлы из инета. Использовал inetget. Сегодня наткнулся на список ссылок вида:
cgi-bin/viewlist.pl?id=75349 при копировании ссылки в окно firefox она дает окно на загрузку, однако в автоит скаченный файл - html: window.location.replace("/files/75349.pdf") Можно как чтобы autoit читал такие файлы с инета? Альтернативно можно писать анализ что если ответ вида .location.replace то повторить скачку с новым адресом. Может все-же это уже реализовано? Спасибо! |
|
Отправлено: 06:32, 20-01-2011 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 10:46, 20-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 73
|
Профиль | Отправить PM | Цитировать Спасибо! Код интересный и я кое-что оттуда узнал. Однако с моей ссылкой вместо реального пути к файлу функция _HTTPGetResponse возвращает в первой строке "OK" вместо "found", а строки "location:" вовсе нет - поэтому не срабатывает. Интересно почему, кто знает?
Да, на всякий вот полный путь если кто захочет поэкспериментировать: http://www.lada-auto.ru/cgi-bin/view...es&ext=pdf |
Отправлено: 07:11, 24-01-2011 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать AlexM,
С этой ссылкой у меня так скачивает: #include <INet.au3> $sUrl = 'http://www.lada-auto.ru/cgi-bin/viewlist.pl?id=85544&fld=file_&tbl=vaz_catalogue_notes&ext=pdf' If Not InetGetSize($sUrl) Then $sText = _INetGetSource($sUrl) $sFirstPartNewUrl = StringRegExpReplace($sUrl, '\A(http://.*?/)\w?.*', '\1') $sSecondPartNewUrl = StringRegExpReplace($sText, '(?s).*?\("/(.*?)"\)?.*', '\1') $sFileName = StringRegExpReplace($sSecondPartNewUrl, '^.*/', '') $sNewUrl = $sFirstPartNewUrl & $sSecondPartNewUrl $hDownload = InetGet($sNewUrl, @ScriptDir & '\' & $sFileName, 1, 1) Do Sleep(20) Until InetGetInfo($hDownload, 2) $nBytes = InetGetInfo($hDownload, 0) InetClose($hDownload) MsgBox(64, 'OK', 'Скачан файл ' & $sFileName & @CRLF & ' размером ' & $nBytes & ' b') Else InetGet($sUrl, @ScriptDir & '\Test.pdf') EndIf $sUrl = 'http://www.lada-auto.ru/cgi-bin/viewlist.pl?id=85544&fld=file_&tbl=vaz_catalogue_notes&ext=pdf' $sCatalog = StringRegExpReplace($sUrl, '\A(http://.*?/)\w?.*fld=(.*?)_&?.*', '\1\2/') $sFileName = StringRegExpReplace($sUrl, '(?s).*?id=(.*?)&fld?.*', '\1') $sExt = StringRegExpReplace($sUrl, '(?s).*?ext=(.*?)\z', '\1') $sNewUrl = $sCatalog & $sFileName & '.' & $sExt MsgBox(64, '', 'Прямая ссылка: ' & $sNewUrl & @CRLF & 'Имя файла: ' & $sFileName & '.' & $sExt) |
Отправлено: 10:45, 24-01-2011 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как открыть bin файл? | sade91 | Хочу все знать | 21 | 28-01-2010 13:21 | |
Не открывается файл с расширением bin | Trojn | Хочу все знать | 8 | 16-03-2005 02:21 | |
Что такое Cgi-bin | Millenium | Вебмастеру | 1 | 11-12-2004 02:33 | |
Как создать файл с помощью CGI скрипта. | lehha | Программирование и базы данных | 1 | 20-11-2003 09:48 | |
Файл-видео с расширением bin | lopushok | Программирование и базы данных | 1 | 03-10-2003 00:42 |
|