|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] wget команда не закачивает файл по ссылке |
|
Любой язык - [решено] wget команда не закачивает файл по ссылке
|
Старожил Сообщения: 239 |
Профиль | Отправить PM | Цитировать
добрый день. хотел закачать файл .csv по ссылке через wget команду. команда такая: c:\wget\wget.exe -i c:\url-list.txt --secure-protocol=auto -nc -c -P c:\files\ . выходит такое сообщение
Скрытый текст
какая причина не пойму, так как мало в этом разбираюсь. есть момент что эсли эту ссылку на яхоо вставить в браузер IE, то загрузка не происходит. если же вставить в браузер гугл хром, то без лишних диалогов закачивает на ура. хотелось бы закачать через wget. не могли бы помочь найти проблему. или есть другие варианты для скачивания нескольких файлов по списку |
|
Отправлено: 18:44, 29-06-2019 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Sham, по совету из сообщения №6 у меня не получилось получить Cookie.
по ссылке есть код. еще и не известно рабочий или нет, но как этот код проверить? возможно ли переделать под Excel или VBS или под SHell или VGet? Скрытый текст
/* use WORK location to store our temp files */
filename out "%sysfunc(getoption(WORK))/output.txt"; filename hdrout "%sysfunc(getoption(WORK))/response1.txt"; /* This PROC step caches the cookie for the website finance.yahoo.com */ /* and captures the web page for parsing later */ proc http out=out headerout=hdrout url="https://finance.yahoo.com/quote/AAPL/history?p=AAPL" method="get"; run; /* Read the response and capture the cookie value from */ /* the CrumbStore field. */ /* The file has very long lines, longer than SAS can */ /* store in a single variable. So we read in <32k chunks. */ data crumb (keep=crumb); infile out recfm=n lrecl=32767; /* the @@ directive says DON'T advance pointer to next line */ input txt: $32767. @@; pos = find(txt,"CrumbStore"); if (pos>0) then do; crumb = dequote(scan(substr(txt,pos),3,':{}')); /* cookie value can have unicode characters, so must URLENCODE */ call symputx('getCrumb',urlencode(trim(crumb))); output; end; run; %put &=getCrumb.; filename data "%sysfunc(getoption(WORK))/data.csv"; filename hdrout2 "%sysfunc(getoption(WORK))/response2.txt"; proc http out=data headerout=hdrout2 url="https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1535835578%str(&)period2=1538427578%str(&)interval=1d%str(&)events=history%str(&)crumb= &getCrumb." method="get"; run; proc import file=data out=history dbms=csv replace; run; proc sgplot data=history; highlow x=date high=high low=low / open=open close=close; xaxis display=(nolabel) minor; yaxis display=(nolabel); run; |
Отправлено: 16:03, 30-06-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2499
|
Профиль | Отправить PM | Цитировать параметр crump в url парсится из страницы с таблицей. ..."CrumbStore":{"crumb":"VtJMp2OUzaw"}... (будет ...&crumb=VtJMp2OUzaw)...
|
Отправлено: 22:43, 30-06-2019 | #12 |
Deadooshka Сообщения: 2499
|
Профиль | Отправить PM | Цитировать попробуйте этот js-скрипт, вроде качает.
Скрытый текст
var dir = 'c:\\files'; var urls = 'c:\\url-list.txt'; var pause = 300; //ms var u1 = 'https://query1.finance.yahoo.com/v1/test/getcrumb'; var r = get(u1)[1]; if (!r) WScript.Quit(1); r = '&crumb=' + r; /* var u1 = 'https://finance.yahoo.com/quote/AAPL/history'; var r = /"CrumbStore":{"crumb":"([^"]+)/g.exec(get(u1)[1]); if (!r) WScript.Quit(1); r = '&crumb=' + r[1]; */ var fso = new ActiveXObject('Scripting.FileSystemObject'); var fr = fso.OpenTextFile(urls, 1); if (!fr) WScript.Quit(2); while (!fr.AtEndOfStream) { var l = fr.ReadLine(); if (!l) continue; l = l.replace(/&crumb=[^&]*/, r); WScript.Sleep(pause); var o = get(l); if (!o[0] || !o[1]) continue; var f = fso.OpenTextFile(dir + '\\' + o[0], 2, true, -2); f.Write(o[1]); f.Close(); } fr.Close(); function get(url) { var h = new ActiveXObject('Microsoft.XMLHTTP'); if (typeof h !== 'object' || !/^https?:/i.test(url)) return ['', '']; h.open('GET', url, false); h.setRequestHeader('User-Agent', 'Firefox/666.6'); h.setRequestHeader('Accept', '*/*'); try { h.send(); } catch(e) { WScript.Echo(e); } var f = /^attachment; filename=(.+)$/g .exec(h.getResponseHeader('Content-Disposition')); if (f) f = f[1]; return [f, h.responseText]; } |
Последний раз редактировалось Sham, 02-07-2019 в 16:56. Причина: пауза + другой урл для получения crumb Отправлено: 03:00, 01-07-2019 | #13 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Sham, спасибо за ответ, только как этим кодом пользоваться. объясните как дураку подробно.
нагуглил про Ctrl+Shift+J. вставил код - вышел такой ответ. в какой программе этот код использовать? в принципе, вчера я установил Python 3.7, но как пользоваться - не знаю. |
Последний раз редактировалось v79italya, 02-09-2019 в 11:34. Отправлено: 09:56, 01-07-2019 | #14 |
Deadooshka Сообщения: 2499
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:09, 01-07-2019 | #15 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Цитата Sham:
ладно, не будем мучить ни я вас ни вы меня. пусть проблема остается проблемой. полгода уже пытаюсь решить эту проблему. отложу опять в сторону всем спасибо кто пытался тему можно закрывать |
|
Отправлено: 15:11, 01-07-2019 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата v79italya:
|
|
Отправлено: 17:11, 01-07-2019 | #17 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата v79italya:
Google Chrome
Устанавливаете расширение: cookies.txt
Щелкаете по значку. Выделяете строку вида: У вас значения 1234567890 и abcdef1ghi2j3&b=1&s=kl будут другими, по этому отсюда не копируйте, копируйте у себя. Эти значения я придумал. Создаёте текстовый файл с названием cookies и расширением txt Вносите в cookies.txt скопированные данные вида: P.S Cookies можете сразу сохранить в файл нажав click here. В таком случае вам придётся открыть cookies.txt и подправить данные т.к сохраняются они криво. Вы увидите следующее abcdef1ghi2j3&b=1&s=kl Вам нужно будет удалить amp;, т.е: Было: abcdef1ghi2j3&b=1&s=kl Стало: abcdef1ghi2j3&b=1&s=kl Firefox
Устанавливаете расширение: cookies.txt
Нажимаете на значок для сохранения файла. Сохраняете. В случае с Firefox - Не нужно что-то подправлять. Отсюда копируете ссылку Download Data Скачиваете wget'ом, например: "C:\WGET\wget.exe" --load-cookies="C:\WGET\cookies.txt" "https://query1.finance.yahoo.com/v7/finance/download/AAU?period1=1234567890&period2=1234567890&interval=1d&events=history&crumb=AB12CdeFGHI" Пути к wget.exe и cookies.txt подставляете свои. |
|
------- Последний раз редактировалось Nordek, 01-07-2019 в 19:27. Причина: bb-code Отправлено: 19:08, 01-07-2019 | #18 |
Deadooshka Сообщения: 2499
|
Профиль | Отправить PM | Цитировать Nordek, только лишь с кукисами - не работает. Требуется уникальный crumb в урле (он связан с кукисами).
v79italya, он уже установлен в системе (cscript.exe в системной папке). "c:\script.js" - это файл с этим кодом. |
Отправлено: 00:13, 02-07-2019 | #19 |
Старожил Сообщения: 239
|
Профиль | Отправить PM | Цитировать Sham, спасибо за скрипт. работает замечательно, даже через чур быстро. надеюсь яхоо не забанит) может в коде можно прописать задержку в треть секунды. еще вопрос: в скрипте нет никаких подводных камней, будет скачивать в любом случае?
Nordek, ваш вариант еще не пробовал. позже попробую. спасибо вам. Iska, спасибо. хорошо что сказали как сделать скрипт. сделал через Notepad++. по двойному клику не сработал, а через ПКМ - открыть с помощью первой же предложенной программой сработало. у меня был вариант полусырой через макрос. сделал браузер по умолчанию гугл хром и через него скачивал. минус что перед применением макроса надо вручную менять папку для закачек браузера., а потом обратно. приложу файл Excel, только надо авторизоваться на Yahoo. спасибо всем что довели дело до конца и проблему решили |
Последний раз редактировалось v79italya, 02-09-2019 в 11:34. Отправлено: 05:53, 02-07-2019 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Задать вопрос как через бат файл присвоить два занения и перейти по ссылке | zzup | Скриптовые языки администрирования Windows | 2 | 20-01-2015 01:45 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 | |
Как открыть по ссылке файл *.rdp? | Rhamzes | Вебмастеру | 1 | 15-11-2005 09:05 | |
Можно ли при помощи PHP скачать файл по ссылке вида http://xxxx? (+) | Igor_I | Вебмастеру | 2 | 12-09-2005 21:31 | |
Клик по ссылке на zip файл в IE | pro100_tak | Хочу все знать | 4 | 09-12-2004 10:21 |
|