|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите реализовать скачивание html страницы и поиск в ней |
|
|
CMD/BAT - [решено] Помогите реализовать скачивание html страницы и поиск в ней
|
Новый участник Сообщения: 36 |
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, можно ли и как написать батник выполняющий такие действия:
первым действием идёт скачивание с помощью 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 |
|
Отправлено: 17:10, 12-08-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Пакетным файлом плохо обрабатывать текста, особенно такие как HTML... могут теги поползти еще на этапе чтения... тут что-то по-хитрее надо... в любом случае присоедините в аттач зазипованный пример HTMLки, попробуем...
|
------- Отправлено: 19:07, 12-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Вот пример html страницы.
Также я приложил пример скрипта для nix с помощью bash ,только что то не работает или я неправильно делаю. пробовал через cygwim |
Отправлено: 19:27, 12-08-2010 | #3 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать alexmoreman,
Насчет *.bat - не та это задача, чтобы её решать методами CMD, поэтому предлагаю расположить wget в теле Vbsript: Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = False objIE.Navigate "F:\rem\Primer.html" While objIE.Busy WScript.Sleep 200 Wend Set tag = objIE.Document.getElementByid("start_download_form") WScript.Echo tag.getAttribute("action") ' смотрим то ли? Set WshShell = CreateObject("WScript.Shell") Retval = WshShell.Run ("wget -c -t 0 Http://sait.ru/" & _ tag.getAttribute("action") & "-O Fail.avi", 1, True) WScript.Echo "Команда выполнена! Код возврата: " & Retval objIE.Quit Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP") StrTargetHtml = "Http://sait.ru/" & _ tag.getAttribute("action") & "/" & "Fail.avi" oXMLHTTP.Open "GET", StrTargetHtml, 0 oXMLHTTP.Send Set oADOStream = CreateObject("ADODB.Stream") oADOStream.Mode = 3 oADOStream.Type = 1 oADOStream.Open oADOStream.Write oXMLHTTP.responseBody oADOStream.SaveToFile "F:\DL\Fail.avi", 2 WScript.Echo "Закачка завершена" PS: ознакомтесь с темой протестируйте скрипт для обновления утилит от Piriform (CCleaner,Defraggler и тд) в ней предолагается решение похожей задачи средствами CMD - сделано граммотно и аккуратно, но слишком сложно за счет отсутствия необоходимых алгоритмов в утилитах CMD. |
Последний раз редактировалось deepred, 13-08-2010 в 00:31. Причина: + MSXML2.XMLHTTP Отправлено: 23:56, 12-08-2010 | #4 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать 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, 13-08-2010 в 01:18. Причина: дополнить Отправлено: 00:38, 13-08-2010 | #5 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать alexmoreman,
Цитата alexmoreman:
Цитата alexmoreman:
и вставить в блокнот (а лучше akelpad). Как вариант попробуйте изменить определение Retval: Retval = WshShell.Run ("cmd /c wget -c -t 0 Http://sait.ru/" & _ tag.getAttribute("action") & "-O Fail.avi", 0, True) Цитата alexmoreman:
|
|||
Отправлено: 13:02, 13-08-2010 | #6 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать deepred,
спасибо огромное тебе! теперь наконец то стало определятся точто вроде нужно.(и в вчерашнем скрипте и с поправками) но остаются "но" после нажатия OK не запускается wget (не видно работы кансоли(может ты высталил скриптом в тихом режиме?)) и через промежуток выходит это сообщение все файлы (.bat ,.vbs,.wget.exe) лежат в одной папке |
Отправлено: 13:57, 13-08-2010 | #7 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать alexmoreman,
WshShell.Run ("cmd /c wget -c -t 0 Http://sait.ru/" & _ tag.getAttribute("action") & "-O Fail.avi",0, True) 0 - отвечает за скрытый режим (для видимости консольного окна выставьте "1") Закачка-то происходит? |
Отправлено: 14:10, 13-08-2010 | #8 |
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать в том то и дело что не происходит
он через раз ошибку выдает и вот сейчас присоединяет к ссылке -0 (в wget) Http://share-nn.ru/d/10189263/453382-0 точнее не ноль а букву o ------ dвсё решил. поиграл с пробелами(убрал букву о) а возможен вариант без нажатия ОК? ----- блин накаркал, прошло в качалке 3 попытки соединится и прикрывается с окном "команда выполнена! Код возврата: 1" |
Последний раз редактировалось alexmoreman, 13-08-2010 в 14:32. Отправлено: 14:20, 13-08-2010 | #9 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать alexmoreman,
эти окна нужны только для контроля при тестировании сценария, для того чтобы от них избавиться нужно закоментировать (поставить символ ' в начале) или удалить строки, содержащие команды Wscript.Echo. |
Отправлено: 14:36, 13-08-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Поиск слова в исходном коде html страницы?????? | klsorat2010 | AutoIt | 65 | 01-04-2013 07:34 | |
[решено] Сохранение загруженной html-страницы | Sestrichka | AutoIt | 12 | 12-11-2009 18:50 | |
[решено] Работа с html-кодом страницы, поиск и копирование нужных строк | Sestrichka | AutoIt | 14 | 02-04-2009 16:51 | |
[решено] Поиск нужного текста в html коде страницы | ph0en1x | AutoIt | 8 | 16-02-2009 02:38 | |
[решено] перенос части страницы HTML на другую через DOM | rus-4-ever | Вебмастеру | 1 | 29-10-2008 01:11 |
|