Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Wget (http://forum.oszone.net/showthread.php?t=247694)

Letrblak 25-11-2012 20:27 2032686

Wget
 
Доброго времени суток, помогите пожалуйста вивести c помощью бат файла в текстовый файл розмеры главних страниц скачаных с помощью Wget, урлы страниц задаются в отдельном txt.

Iska 25-11-2012 21:47 2032725

Letrblak, чтобы узнать размеры, обычно загружать страницы не нужно. Покажите Ваш код.

Letrblak 26-11-2012 00:08 2032824

в том то и дело, что я не знаю, как ето осуществить((

а, через wget я хочу ето сделать, потому, что потом мне нужно будет вывести ещо и время загрузки страницы...

Iska 26-11-2012 00:33 2032836

Letrblak, может Вы сначала изложите Вашу хотелку всю, целиком? Мало желания что-то сделать, а потом увидеть «А мне ещё вот это надо», которое полностью перечёркивает всю предыдущую работу.

Letrblak 26-11-2012 00:45 2032837

мне нужно вивести розмеры скачеваемых страниц, и вывести время их закачки!

Iska 26-11-2012 01:42 2032860

Зачем (особенно второе)?

Anonymоus 26-11-2012 03:15 2032892

Цитата:

Цитата Letrblak
вивести розмеры скачеваемых »

Язык общения на этом форуме - русский. Пожалуйста, пишите грамотно, это повысит шансы на то, что Вам дадут ответ на заданные вопросы.

По теме - вот скрипт, который покажет размеры страниц. Используется временный файл, потому что порт wget для windows крайне странно работает с потоками ввода\вывода, и перенаправление через пайп в данном случае не сработало.
Код:

@Echo Off

Set URLlist=urls.txt

For /F "usebackq delims=" %%A In ("%URLlist%") Do (
        wget --spider "%%A" 2>"%Temp%\wget.tmp"
        For /F "tokens=2 delims=()" %%B In ('type "%Temp%\wget.tmp"^|Find "Length:"') Do (
                Echo %%A  %%B
        )
)
Pause&Exit

Что касается скорости скачивания - это зависит от ширины Вашего интернет-соединения, и зная размер файла и ширину оного канала, время можно с лёгкостью вычислить. Арифметические операции в cmd - Set /?, почитайте про ключ /A

Iska 26-11-2012 03:18 2032893

Цитата:

Цитата Anonymоus
крайне странно работает с потоками ввода\вывода »

А так:
Цитата:

-S, --server-response вывод ответа сервера.
?

Anonymоus 26-11-2012 03:25 2032895

Iska, всё равно не помогает, и -O- в том числе. Wget всё, что не является скачиваемым файлом, отдает в STDERR, и 2>&1 в таком случае просто не работает.

Iska 26-11-2012 09:59 2032961

Anonymоus, я тут покопался у себя — угу, оказывается я ровно так и делал — через временный файл.

Letrblak 26-11-2012 17:08 2033294

спасибо!!

Letrblak 26-11-2012 18:32 2033358

так, что мне делать, сбросте пожалуйста код...

Iska 26-11-2012 22:32 2033506

Цитата:

Цитата Letrblak
сбросте пожалуйста код... »

А это тогда что, если не код?!

Letrblak 26-11-2012 22:50 2033511

я прописал етот код:

@Echo Off

Set URLlist=D:\Bohdan\Man\Drupal.txt

For /F "usebackq delims=" %%A In ("%URLlist%") Do (
wget --spider "%%A" 2>"%Temp%\wget.tmp"
For /F "tokens=2 delims=()" %%B In ('type "%Temp%\wget.tmp"^|Find "Length:"') Do (
Echo %%A %%B >> 11.txt
)
)

запускаю с помощью CMD и не могу найти куда оно его сохраняет((

Iska 26-11-2012 23:49 2033548

Цитата:

Цитата Letrblak
и не могу найти куда оно его сохраняет(( »

Файл «11.txt» — в той папке, которая является текущей при запуске пакетного файла.

Letrblak 27-11-2012 00:46 2033573

тоисть в той папке где лежыт бат файл??
но он там не появляется!!

Iska 27-11-2012 05:05 2033628

Letrblak, у Вас вывод из WGet идёт случайно не в кириллице/кракозябрах? Просто запустите в командной строке «wget.exe --help», посмотрите и скажите.

Letrblak 27-11-2012 16:37 2034018

нет, у меня вывод идёт по английски...

Letrblak 27-11-2012 23:50 2034348

ах, да ещо в пвпке TEMP не обнаружыл wget.tmp

Iska 28-11-2012 01:14 2034373

Letrblak, приведите здесь содержимое «D:\Bohdan\Man\Drupal.txt».

Letrblak 28-11-2012 01:18 2034374

там находятса урлы сайтов 500 штук...

ну, типа:
http://www.crimea.ua/
http://drupal.org/
http://www.forbes.ru/
http://news.sportbox.ru/
http://www.nanonewsnet.ru/
http://www.dveri-online.ru/
http://uaport.net/
http://astrobl.ru/
http://www.whitehouse.gov/
http://www.festivalnauki.ru/
http://internet.mail.ru/
http://www.hr-portal.ru/
http://www.mosenergosbyt.ru/portal/page/portal/site
http://elvisti.com/
http://pravmin74.ru/
http://www.sarinform.ru/
http://100realty.ua/
http://www.teletrade.ru/
http://www.drupal.ru/
http://gubernator74.ru/
http://ato.ru/
http://hotjob.ru/
http://cheladmin.ru/
http://www.kirpich.ru/
http://www.pnevmoteh.ru/
http://italia-ru.com/
http://www.b2bcg.ru/
http://www.afportal.ru/
...

Iska 28-11-2012 03:39 2034403

Letrblak, если у Вас:

1) не локализованная версия «wget.exe»;
2) «wget.exe» находится в одном из каталогов %PATH%;
3) версия «wget.exe» — 1.11.4;

то вот это:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set URLlist=D:\Bohdan\Man\Drupal.txt

for /f "usebackq delims=" %%i in ("%URLlist%") do (
        wget.exe --spider "%%i" 2>"%Temp%\wget.tmp"
       
        for /f "tokens=2" %%j in ('type "%Temp%\wget.tmp"^|find.exe "Length:"') do (
                >>Length.txt echo %%j
        )
       
        del /f /q "%Temp%\wget.tmp"
)

endlocal
exit /b 0

даёт в файле «Length.txt» по первым трём url из списка:
Код:

unspecified
32500
185652

Первое — «unspecified» — из строки ответа «Length: unspecified [text/html]»: некоторые сервера, формирующие страницы динамически, могут не отдавать их размер в ответ на запрос клиента.

Letrblak 28-11-2012 16:47 2034734

я конечно извеняюсь, может ето у меня чегото не то, но и етот код не пашет((
не могли бы вы кинуть свой скайп в ЛС и проконсультировать меня??

Iska 29-11-2012 00:36 2034973

Цитата:

Цитата Letrblak
не пашет(( »

Сохраните следующий код:
Код:

rem @echo off
setlocal enableextensions enabledelayedexpansion

set URLlist=D:\Bohdan\Man\Drupal.txt

for /f "usebackq delims=" %%i in ("%URLlist%") do (
        wget.exe --spider "%%i" 2>"%Temp%\wget.tmp"
       
        for /f "tokens=2" %%j in ('type "%Temp%\wget.tmp"^|find.exe "Length:"') do (
                >>Length.txt echo %%j
        )
       
        rem del /f /q "%Temp%\wget.tmp"
        goto :eof
)

endlocal
exit /b 0

под именем «c:\0001.cmd». Откройте командную строку и выполните такую команду:
Код:

c:\0001.cmd >c:\Result.txt 2>&1
Выложите сюда содержимое файла «c:\Result.txt» и файла «%Temp%\wget.tmp».

Letrblak 01-12-2012 00:25 2036300

я же говорил, что у меня нету wget.tmp!!

Iska 01-12-2012 00:44 2036310

Прочтите ещё раз мой предыдущий пост более внимательно.

Letrblak 01-12-2012 01:00 2036317

отказ в доступе((

ещо один вопрос: как можно сделать так, чтобы параметр задавать не в самом бат файле, а уже в командной строке,
допустим 8.bat http://drupal.org/ и оно мне выводило розмер закачаного вгетом индекса...
в 8.bat как вы уже наверно поняли должен быть код который работал бы и с другими сайтами введёнными вместо http://drupal.org/...
Извените, что так перекручиваю свои задачи!!

Iska 01-12-2012 02:57 2036352

Цитата:

Цитата Letrblak
отказ в доступе(( »

Заполняйте свою конфигурацию. Тогда будет проще давать рекомендации. Запускайте командную строку от имени администратора.

Цитата:

Цитата Letrblak
ещо один вопрос: как можно сделать так, »

Давайте сначала с одним разберёмся ;).

Letrblak 01-12-2012 03:00 2036356

я запускаю от админа!!

Iska 03-12-2012 22:38 2038099

Сожалею, но я вряд ли смогу Вам чем-либо ещё помочь.


Время: 00:53.

Время: 00:53.
© OSzone.net 2001-