![]() |
[решено] Помогите реализовать скачивание html страницы и поиск в ней
Подскажите пожалуйста, можно ли и как написать батник выполняющий такие действия:
первым действием идёт скачивание с помощью wget html страницы wget -c -t 0 Http://sait.ru/452484 -O 452484.html далее необходимо в скаченном html найти строку <form action=d/цыфры/цыфры method=GET id="start_download_form"> скопировать из этой строки d/цыфры/цыфры и вставить в следующей строке вместо ХХХ wget -c -t 0 Http://sait.ru/ХХХ -O Fail.avi |
Пакетным файлом плохо обрабатывать текста, особенно такие как HTML... могут теги поползти еще на этапе чтения... тут что-то по-хитрее надо... в любом случае присоедините в аттач зазипованный пример HTMLки, попробуем...
|
Вложений: 1
Вот пример html страницы.
Также я приложил пример скрипта для nix с помощью bash ,только что то не работает или я неправильно делаю. пробовал через cygwim |
alexmoreman,
Насчет *.bat - не та это задача, чтобы её решать методами CMD, поэтому предлагаю расположить wget в теле Vbsript: Код:
Set objIE = CreateObject("InternetExplorer.Application") Код:
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") PS: ознакомтесь с темой протестируйте скрипт для обновления утилит от Piriform (CCleaner,Defraggler и тд) в ней предолагается решение похожей задачи средствами CMD - сделано граммотно и аккуратно, но слишком сложно за счет отсутствия необоходимых алгоритмов в утилитах CMD. |
deepred,
спасибо это очень интересно! Я попробовал но увы почему то не идет и выходит ошибка ![]() запускаю с батника так: wget -c -t 0 Http://share-nn.ru/31032611 -O Primer.html start script.vbs Насчет этого в твоём скрипте F:\rem\Primer.html я так понимаю полный путь к файлу? причина задаться этой проблемои была, в жадности данного хранилища относительно моего провайдера. вот и приходится wgetом долбиться по ссылкам от 10 до 30 раз для получения как страницы так и файла. для подобной цели я себе создал 2 .bat 1. wget -c -t 0 Http://sait.ru/452484 -O 452484.html после скачивания страницы я открываю её и копирую во второй .bat ссылку на файл и его название: 2. wget -c -t 0 Http://sait.ru/d/452484856/765890 -O название файла.avi поэтому и хочеться этот процесс оптимизировать и не вписывать ссылку на файл вручную. |
alexmoreman,
Цитата:
Цитата:
и вставить в блокнот (а лучше akelpad). Как вариант попробуйте изменить определение Retval: Код:
Retval = WshShell.Run ("cmd /c wget -c -t 0 Http://sait.ru/" & _ Цитата:
|
deepred,
спасибо огромное тебе! теперь наконец то стало определятся точто вроде нужно.(и в вчерашнем скрипте и с поправками) ![]() но остаются "но" после нажатия OK не запускается wget (не видно работы кансоли(может ты высталил скриптом в тихом режиме?)) и через промежуток выходит это сообщение ![]() все файлы (.bat ,.vbs,.wget.exe) лежат в одной папке |
alexmoreman,
WshShell.Run ("cmd /c wget -c -t 0 Http://sait.ru/" & _ tag.getAttribute("action") & "-O Fail.avi",0, True) 0 - отвечает за скрытый режим (для видимости консольного окна выставьте "1") Закачка-то происходит? |
в том то и дело что не происходит
он через раз ошибку выдает и вот сейчас присоединяет к ссылке -0 (в wget) Http://share-nn.ru/d/10189263/453382-0 точнее не ноль а букву o ------ dвсё решил. поиграл с пробелами(убрал букву о) а возможен вариант без нажатия ОК? ----- блин накаркал, прошло в качалке 3 попытки соединится и прикрывается с окном "команда выполнена! Код возврата: 1" |
alexmoreman,
эти окна нужны только для контроля при тестировании сценария, для того чтобы от них избавиться нужно закоментировать (поставить символ ' в начале) или удалить строки, содержащие команды Wscript.Echo. |
deepred,
блин незнаю в чём у меня беда.. убрал я эти строки идет запуск качалки , идут попытки соединиться с сервером то на 3 попытке то на 5 или 7 вырубается wget и все |
alexmoreman,
а при запуске wget из CMD также? попробуйте применить в коде следующее изменение "cmd /c" |
я решил проверить на другом файле, вроде пошло...
правда соединение прошло с 3 попытки deepred , а в таком виде можно оставить код? Код:
Set objIE = CreateObject("InternetExplorer.Application") а вот ты спросил про CMD? как оно лучше Код:
так: |
alexmoreman,
Если последний вариант у Вас работает, то можете его оставать, только в верните в конце строчку: Код:
objIE.Quit cmd /c - ключ /с применяется для того, чтобы сеанс cmd не завершался по окончанию отработки команды, я его применил только для наглядности (чтобы увидеть "слет" wget) PS: а вариант "MSXML2.XMLHTTP" Вы не испытали? |
хорошо щас попробую.
получается к кодом но через раз ошибка вылазает , щас вуду есчё кумекать . |
deepred, гуру я реально туп и непонимаю откуда данный скрипт возьмёт ссылку на файл
Код:
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") создал 3 файла: 1. bat Код:
wget -c -t 0 http://share-nn.ru/665552828 -O stranyca.html запускаю второй bat 2. Код:
start script.vbs да ещё странность заметил что после запуска появляются характерные щелчки (типа как папка открывается или как страницы в браузере листаеш) 3. vbs Код:
Set objIE = CreateObject("InternetExplorer.Application") |
alexmoreman,
в таком виде ему её взять неоткуда (читай внимательней предыдущие посты): Код:
Set objIE = CreateObject("InternetExplorer.Application") |
alexmoreman,
Уважаемый!!!! Не надо скачивать страницу, выставьте в мой VBS-скрипт этот inet адрес... Откуда берется ошибка не знаю, возможно просто не успевает загрузиться страница... Щелчки и прочее может издавать IE (хотя и не должно такого быть) и потом: для запуска vbscript следует использовать следующий синтаксис: Код:
wscript //logo script.vbs |
deepred, да я сразу догадался так сделать но увы ошибка...
да бог с ней, слушай а после завершения работы в процессах не должен наверное оставаться iexplore.exe ? |
alexmoreman,
Цитата:
|
deepred, я сделал как ты и сказал , строка objIE.Quit там давно уже тусит.
вот так сейчас подрубилась изумительно Код:
wget -c -t 0 http://share-nn.ru/665552828 -O stranyca.html Низкий тебе сердечный поклон, за проделанную работу! Плохо что в своё время не пошел учиться, а щас после аварии , только дома обложившись книгами да с вашей помощью. Ещё раз спасибо. |
deepred,
Цитата:
Код:
было Проблема с закрытием iexplore так и не решилась строкой objIE.Quit. Но не беда, убиваю процесс в диспетчере задач. Второй способ пока не работает, по мере проб и ошибок о результатах отпишу в личку. Ещё раз огромное спасибо за проделанную работу! Задача решена. |
Время: 17:08. |
Время: 17:08.
© OSzone.net 2001-2025