PDA

Показать полную графическую версию : [решено] wget команда не закачивает файл по ссылке


Страниц : [1] 2

v79italya
29-06-2019, 18:44
добрый день. хотел закачать файл .csv по ссылке через wget команду. команда такая: c:\wget\wget.exe -i c:\url-list.txt --secure-protocol=auto -nc -c -P c:\files\ . выходит такое сообщениеMicrosoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт 2012. Все права защищены.

C:\Users\Администратор>c:\wget\wget.exe -i c:\url-list.txt --secure-protocol=aut
o -nc -c -P c:\files\
--2019-06-29 20:33:55-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK
.6HD
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.23,
87.248.118.22, 2a00:1288:80:800::7000, ...
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.23|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.

C:\Users\Администратор>
какая причина не пойму, так как мало в этом разбираюсь. есть момент что эсли эту ссылку на яхоо вставить в браузер IE, то загрузка не происходит. если же вставить в браузер гугл хром, то без лишних диалогов закачивает на ура. хотелось бы закачать через wget.
не могли бы помочь найти проблему. или есть другие варианты для скачивания нескольких файлов по списку

Nordek
29-06-2019, 19:10
выходит такое сообщение »Пробуйте сохранить cookies из браузера и загрузить:
--load-cookies=ФАЙЛ

v79italya
29-06-2019, 19:58
--load-cookies=ФАЙЛ »
я извиняюсь, попробовал так: c:\wget\wget.exe -i c:\url-list.txt --secure-protocol=auto -nc -c -P --load-cookies=c:\files\
не работает. я очень плохо в этом разбираюсь

попробовал так - c:\wget\wget.exe --load-cookies=https://query1.finance.yahoo.com/v7/finance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK.6HD - тоже не работает

Iska
29-06-2019, 20:46
v79italya, явным же образом написано:
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed. »

v79italya
29-06-2019, 20:59
как в коде прописать Username/Password. я уже все пробовал из того, что нагуглил.
есть ли возможность прописать в коде использование браузера гугл хром? может из за этого не работает

Nordek
29-06-2019, 21:07
v79italya, Вы не поняли. Вам нужно сохранить Cookie (https://ru.wikipedia.org/wiki/Cookie) в файл, затем посунуть wget'у.
Пример:
wget.exe -с "https://query1.finance.yahoo.com/v7/finance/download/AAU?period1=" --load-cookies=C:\mycookies.txt

Либо авторизоваться.
Или или или:
wget.exe "Ссылка" --user=ПОЛЬЗОВАТЕЛЬ --password=ПАРОЛЬ
wget.exe "Ссылка" --http-user= ПОЛЬЗОВАТЕЛЬ --http-password=ПАРОЛЬ
wget.exe "Ссылка" --ftp-user=ПОЛЬЗОВАТЕЛЬ --ftp-password=ПАРОЛЬ

Читайте справку:
Использование: wget [ПАРАМЕТР]... [URL]...

Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров.

Запуск:
-V, --version показать версию Wget и завершить работу
-h, --help показать эту справку
-b, --background после запуска перейти в фоновый режим
-e, --execute=КОМАНДА выполнить команду в стиле «.wgetrc»

Журналирование и входной файл:
-o, --output-file=ФАЙЛ записывать сообщения в ФАЙЛ
-a, --append-output=ФАЙЛ дописывать сообщения в конец ФАЙЛА
-d, --debug показать много отладочной информации
-q, --quiet ничего не выводить
-v, --verbose показывать подробные сведения (по умолчанию)
-nv, --no-verbose отключить вывод подробных сведений (не полностью)
--report-speed=ТИП единицы измерения пропускной способности
определить ТИПОМ. ТИП может быть равно bits
-i, --input-file=ФАЙЛ загрузить URL-ы согласно локальному
или внешнему ФАЙЛУ
-F, --force-html считать, что входной файл — HTML
-B, --base=URL считать, что ссылки из входного файла (-i -F)
указаны относительно URL
--config=ФАЙЛ задать файл настроек
--no-config не читать файлы настроек
--rejected-log=ФАЙЛ протоколировать причины отброса URL в ФАЙЛ

Загрузка:
-t, --tries=ЧИСЛО установить ЧИСЛО повторных попыток
(0 без ограничения)
--retry-connrefused повторять, даже если в подключении отказано
--retry-on-http-error=ОШИБКИ
список (через запятую) ошибок HTTP,
вызывающих повтор
-O, --output-document=ФАЙЛ записывать документы в ФАЙЛ
-nc, --no-clobber пропускать загрузки, которые приведут к
загрузке уже существующих файлов
(и их перезаписи)
--no-netrc не пытаться получить данные из .netrc
-c, --continue возобновить загрузку частично загруженного
файла
--start-pos=СМЕЩЕНИЕ начинать загрузку со СМЕЩЕНИЯ (считается с 0)
--progress=ТИП выбрать тип индикатора выполнения
--show-progress показывать индикатор выполнения в любом
режиме подробности
-N, --timestamping не загружать повторно файлы, только если они
не новее, чем локальные
--no-use-server-timestamps не использовать проверку
if-modified-since для запросов в режиме учёта
меток времени
--no-use-server-timestamps не устанавливать метку времени локальному
файлу, полученную с сервера
-S, --server-response вывод ответа сервера
--spider ничего не загружать
-T, --timeout=СЕКУНДЫ установка значений всех тайм-аутов равными
числу СЕКУНД
--dns-timeout=СЕК установка тайм-аута поиска в DNS в СЕК
--connect-timeout=СЕК установка тайм-аута подключения в СЕК
--read-timeout=СЕК установка тайм-аута чтения в СЕК
-w, --wait=СЕКУНДЫ пауза в СЕКУНДАХ между загрузками
--waitretry=СЕКУНДЫ пауза в 1..СЕКУНДЫ между повторными
попытками загрузки
--random-wait пауза в 0.5*WAIT...1.5*WAIT секунд
между загрузками
--no-proxy явно выключить прокси
-Q, --quota=ЧИСЛО установить величину квоты загрузки в ЧИСЛО
--bind-address=АДРЕС привязать АДРЕС (имя компьютера или IP)
локального компьютера
--limit-rate=СКОРОСТЬ ограничить СКОРОСТЬ загрузки
--no-dns-cache отключить кэширование DNS-запросов
--restrict-file-names=ОС использовать в именах файлов символы,
допустимые в ОС
--ignore-case игнорировать регистр при сопоставлении
файлов и/или каталогов
-4, --inet4-only подключаться только к адресам IPv4
-6, --inet6-only подключаться только к адресам IPv6
--prefer-family=СЕМЕЙСТВО подключаться сначала к адресам указанного
семейства (может быть IPv6, IPv4 или ничего)
--user=ПОЛЬЗОВАТЕЛЬ установить и ftp- и http-пользователя в
ПОЛЬЗОВАТЕЛЬ
--password=ПАРОЛЬ установить ftp- и http-пароль в ПАРОЛЬ
--ask-password запрашивать пароли
--use-askpass=КОМАНДА указать обработчик мандатов для запроса
имени пользователя и пароля. Если
КОМАНДА не указана, то используется
переменная окружения WGET_ASKPASS
или SSH_ASKPASS.
--no-iri выключить поддержку IRI
--local-encoding=КДР использовать КДР как локальную кодировку
для IRI
--remote-encoding=КДР использовать КДР как удалённую кодировку
по умолчанию
--unlink удалить файл перед затиранием
--xattr turn on storage of metadata in extended file attributes

Каталоги:
-nd, --no-directories не создавать каталоги
-x, --force-directories принудительно создавать каталоги
-nH, --no-host-directories не создавать каталоги как на узле
--protocol-directories использовать имя протокола в каталогах
-P, --directory-prefix=ПРЕФИКС сохранять файлы в ПРЕФИКС/..
--cut-dirs=ЧИСЛО игнорировать ЧИСЛО компонентов удалённого
каталога

Параметры HTTP:
--http-user=ПОЛЬЗОВ. установить http-пользователя в ПОЛЬЗОВАТЕЛЬ
--http-password=ПАРОЛЬ установить http-пароль в ПАРОЛЬ
--no-cache отвергать кэшированные сервером данные
--default-page=ИМЯ изменить имя страницы по умолчанию (обычно
это «index.html»)
-E, --adjust-extension сохранять документы HTML/CSS с надлежащими
расширениями
--ignore-length игнорировать поле заголовка «Content-Length»
--header=СТРОКА вставить СТРОКУ между заголовками
--compression=ТИП тип сжатия: auto, gzip или none
(по умолчанию: none)
--max-redirect максимально допустимое число перенаправлений
на страницу
--proxy-user=ПОЛЬЗОВ. установить ПОЛЬЗОВАТЕЛЯ в качестве имени
пользователя для прокси
--proxy-password=ПАРОЛЬ установить ПАРОЛЬ в качестве пароля для
прокси
--referer=URL включить в HTTP-запрос заголовок «Referer: URL»
--save-headers сохранять HTTP-заголовки в файл
-U, --user-agent=АГЕНТ идентифицировать себя как АГЕНТ вместо
Wget/ВЕРСИЯ
--no-http-keep-alive отключить поддержание активности HTTP
(постоянные подключения)
--no-cookies не использовать кукисы
--load-cookies=ФАЙЛ загрузить кукисы из ФАЙЛА перед сеансом
--save-cookies=ФАЙЛ сохранить кукисы в ФАЙЛ после сеанса
--keep-session-cookies загрузить и сохранить кукисы сеанса
(непостоянные)
--post-data=СТРОКА использовать метод POST; отправка СТРОКИ в
качестве данных
--post-file=ФАЙЛ использовать метод POST; отправка содержимого
ФАЙЛА
--method=HTTPMethod использовать метод «HTTPMethod» в заголовке
--body-data=СТРОКА отправка СТРОКИ в качестве данных;
ДОЛЖЕН быть указан параметр --method
--body-file=ФАЙЛ отправка содержимого ФАЙЛА;
ДОЛЖЕН быть указан параметр --method
--content-disposition учитывать заголовок Content-Disposition
при выборе имён для локальных файлов
(ЭКСПЕРИМЕНТАЛЬНЫЙ)
--content-on-error выводить принятые данные при ошибках сервера
--auth-no-challenge отправлять информацию об аутентификации
Basic HTTP не дожидаясь первого ответа
сервера

Параметры HTTPS (SSL/TLS):
--secure-protocol=ПР выбор протокола безопасности: auto, SSLv2,
SSLv3, TLSv1, TLSv1_1, TLSv1_2 или PFS
--https-only переходить только по безопасным ссылкам HTTPS
--no-check-certificate не проверять сертификат сервера
--certificate=FILE файл сертификата пользователя
--certificate-type=ТИП тип сертификата пользователя: PEM или DER
--private-key=ФАЙЛ файл секретного ключа
--private-key-type=ТИП тип секретного ключа: PEM или DER
--ca-certificate=ФАЙЛ файл с набором CA
--ca-directory=КАТ каталог, в котором хранится список CA
--crl-file=ФАЙЛ файл с набором CRL
--pinnedpubkey=ФАЙЛ/ХЭШИ Файл с открытым ключом (PEM/DER) или любое
количество хэшей sha256 в виде base64,
начинающихся с «sha256//» и разделённых «;»,
по которым проверяется ответный узел

--ciphers=СТРОКА назначить строку приоритета (GnuTLS) или
список шифров (OpenSSL) непосредственным
образом. Использовать осторожно. Данный
параметр заменяет значение --secure-protocol.
Формат и синтаксис строки зависит от
используемой библиотеки SSL/TLS.
Параметры HSTS:
--no-hsts отключить HSTS
--hsts-file путь к базе данных HSTS (заменит значение
по умолчанию)

Параметры FTP:
--ftp-user=ПОЛЬЗОВАТЕЛЬ установить ftp-пользователя в ПОЛЬЗОВАТЕЛЬ
--ftp-password=ПАРОЛЬ установить ftp-пароль в ПАРОЛЬ
--no-remove-listing не удалять файлы «.listing»
--no-glob выключить маски для имён файлов FTP
--no-passive-ftp отключить «пассивный» режим передачи
--preserve-permissions сохранять права доступа удалённых файлов
--retr-symlinks при рекурсии загружать файлы по ссылкам
(не каталоги)

Параметры FTPS:
--ftps-implicit безусловно использовать FTPS (порт
по умолчанию — 990)
--ftps-resume-ssl возобновлять сеанс SSL/TLS, начатый
в канале управления, при открытии
канала данных
--ftps-clear-data-connection шифровать только канал управления;
данные не шифруются
--ftps-fallback-to-ftp вернуться к FTP, если FTPS не
поддерживается сервером
Параметры WARC:
--warc-file=ФАЙЛ записать данные запроса/ответа в файл .warc.gz
--warc-header=СТРОКА вставить СТРОКУ в запись warcinfo
--warc-max-size=ЧИСЛО максимальный размер файлов WARC равен ЧИСЛУ
--warc-cdx записать индексные файлы CDX
--warc-dedup=ФАЙЛ не сохранять записи, перечисленные в файле CDX
--no-warc-compression не сжимать файлы WARC с помощью GZIP
--no-warc-digests не вычислять дайджесты SHA1
--no-warc-keep-log не сохранять файл журнала в записи WARC
--warc-tempdir=КАТАЛОГ расположение для временных файлов,
создаваемых процедурой записи WARC

Рекурсивная загрузка:
-r, --recursive включение рекурсивной загрузки
-l, --level=ЧИСЛО глубина рекурсии (inf и 0 — бесконечность)
--delete-after удалять локальные файлы после загрузки
-k, --convert-links делать ссылки локальными в загруженном
HTML или CSS
--convert-file-only преобразовывать только файловую часть URL
(базовую часть имени)
--backups=N перед записью файла X, ротировать до N
резервных файлов
-K, --backup-converted перед преобразованием файла X делать резервную
копию в виде X.orig
-m, --mirror короткий параметр, эквивалентный
-N -r -l inf --no-remove-listing
-p, --page-requisites загрузить все изображения и проч., необходимые
для отображения HTML-страницы
--strict-comments включить строгую (SGML) обработку комментариев
HTML

Разрешения/запреты при рекурсии:
-A, --accept=СПИСОК список разрешённых расширений
через запятую
-R, --reject=СПИСОК список запрещённых расширений,
разделённых запятыми.
--accept-regex=РЕГВЫР регулярное выражение для разрешённых URL
--reject-regex=РЕГВЫР регулярное выражение для запрещённых URL
--regex-type=ТИП тип регулярного выражения (posix|pcre)
-D, --domains=СПИСОК список разрешённых доменов,
через запятую
--exclude-domains=СПИСОК список запрещённых доменов,
через запятую
--follow-ftp следовать по ссылкам FTP в HTML-документах
--follow-tags=СПИСОК список используемых тегов HTML,
через запятую
--ignore-tags=СПИСОК список игнорируемых тегов HTML,
через запятую
-H, --span-hosts заходить на чужие узлы при рекурсии
-L, --relative следовать только по относительным ссылкам
-I, --include-directories=СПИСОК список разрешённых каталогов
--trust-server-names использовать имя, указанное в перенаправляющем URL,
в качестве последнего компонента.
-X, --exclude-directories=СПИСОК список исключаемых каталогов
-np, --no-parent не подниматься в родительский каталог

v79italya
30-06-2019, 07:03
Nordek, спасибо за совет. последние три команды, по моему, ругаются уже по другому поводуMicrosoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт 2012. Все права защищены.

C:\Users\Администратор>wget.exe -с "https://query1.finance.yahoo.com/v7/finance/
download/AAU?period1=" --load-cookies=C:\mycookies.txt
"wget.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Users\Администратор>c:\wget\wget.exe -с "https://query1.finance.yahoo.com/v7/
finance/download/AAU?period1=" --load-cookies=C:\mycookies.txt
c:\wget\wget.exe: invalid option -- 'с'
Usage: wget [OPTION]... [URL]...
может есть возможность в Excel на VBA сделать?

Try `wget --help' for more options.

C:\Users\Администратор>c:\wget\wget.exe -с "https://query1.finance.yahoo.com/v7/
finance" --load-cookies=C:\mycookies.txt
c:\wget\wget.exe: invalid option -- 'с'
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

C:\Users\Администратор>c:\wget\wget.exe "https://query1.finance.yahoo.com/v7/fi
nance" --load-cookies=C:\mycookies.txt
Cannot open cookies file 'C:/mycookies.txt': No such file or directory
--2019-06-30 08:45:25-- https://query1.finance.yahoo.com/v7/finance
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000, ...
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-06-30 08:45:26 ERROR 404: Not Found.


C:\Users\Администратор>c:\wget\wget.exe -i https://query1.finance.yahoo.com/v7/f
inance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=his
tory&crumb=lW3nnVK.6HD --user=xxx@yahoo.com --password=xxx -nc -c -P
c:\files\
--2019-06-30 08:55:26-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000, ...
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224.
"period2" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"interval" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"events" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"crumb" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Users\Администратор>c:\wget\wget.exe -i https://query1.finance.yahoo.com/v7/f
inance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=his
tory&crumb=lW3nnVK.6HD --http-user=xxx@yahoo.com --http-password=xxx
-nc -c -P c:\files\
--2019-06-30 08:56:12-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000, ...
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224.
"period2" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"interval" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"events" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"crumb" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Users\Администратор>c:\wget\wget.exe -i https://query1.finance.yahoo.com/v7/f
inance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=his
tory&crumb=lW3nnVK.6HD --ftp-user=xxx@yahoo.com --ftp-password=xxx -n
c -c -P c:\files\
--2019-06-30 08:56:40-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000, ...
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224.
"period2" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"interval" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"events" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"crumb" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Users\Администратор>

может есть возможность сделать в Excel на VBA?

Nordek
30-06-2019, 08:38
"period2" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"interval" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"events" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"crumb" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом. »В url добавьте кавычки, пример:
c:\wget\wget.exe -i "https://query1.finance.yahoo.com/v7/finance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK.6HD" --http-user=xxx@yahoo.com --http-password=xxx -nc -c -P C:\files\

v79italya
30-06-2019, 10:33
Nordek, теперь такие ответы
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт 2012. Все права защищены.

C:\Users\Администратор>c:\wget\wget.exe -i "https://query1.finance.yahoo.com/v7/
finance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=hi
story&crumb=lW3nnVK.6HD" --http-user=xxx@yahoo.com --http-password=xxx -nc -c -P c:\files\
--2019-06-30 12:28:30-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK
.6HD
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Unknown authentication scheme.

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK.6HD.

C:\Users\Администратор>c:\wget\wget.exe -i "https://query1.finance.yahoo.com/v7/
finance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=hi
s tory&crumb=lW3nnVK.6HD" --ftp-user=xxx@yahoo.com --ftp-password=xxx
-n c -c -P c:\files\
--2019-06-30 12:28:53-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224&period2=1561818224&interval=1d&events=his%20tory&crumb=lW3n
nVK.6HD
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224&period2=1561818224&interval=1d&events=his tory&crumb=lW3nnVK.6HD.

C:\Users\Администратор>c:\wget\wget.exe -i "https://query1.finance.yahoo.com/v7/
finance/download/AAU?period1=1530282224&period2=1561818224&interval=1d&events=hi
story&crumb=lW3nnVK.6HD" --user=xxx@yahoo.com --password=xxx -nc -c -
P c:\files\
--2019-06-30 12:29:35-- https://query1.finance.yahoo.com/v7/finance/download/AA
U?period1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK
.6HD
Resolving query1.finance.yahoo.com (query1.finance.yahoo.com)... 87.248.118.22,
87.248.118.23, 2a00:1288:80:800::7000
Connecting to query1.finance.yahoo.com (query1.finance.yahoo.com)|87.248.118.22|
:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Unknown authentication scheme.

Username/Password Authentication Failed.
No URLs found in https://query1.finance.yahoo.com/v7/finance/download/AAU?period
1=1530282224&period2=1561818224&interval=1d&events=history&crumb=lW3nnVK.6HD.

C:\Users\Администратор>

Sham
30-06-2019, 14:20
ему кукис нужен от страницы с html-таблицей. https://blogs.sas.com/content/sgf/2018/11/01/proc-http-download-data/

v79italya
30-06-2019, 16:03
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;

Sham
30-06-2019, 22:43
параметр crump в url парсится из страницы с таблицей. ..."CrumbStore":{"crumb":"VtJMp2OUzaw"}... (будет ...&crumb=VtJMp2OUzaw)...

Sham
01-07-2019, 03:00
попробуйте этот 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];
}

v79italya
01-07-2019, 09:56
Sham, спасибо за ответ, только как этим кодом пользоваться. объясните как дураку подробно.
нагуглил про Ctrl+Shift+J. вставил код - вышел такой ответ. в какой программе этот код использовать?
в принципе, вчера я установил Python 3.7, но как пользоваться - не знаю.

Sham
01-07-2019, 14:09
это же WSH CScript c:\script.js //Nologo //E:JScript

v79italya
01-07-2019, 15:11
это же WSH »
что это? ни одно так другое
ладно, не будем мучить ни я вас ни вы меня. пусть проблема остается проблемой. полгода уже пытаюсь решить эту проблему. отложу опять в сторону
всем спасибо кто пытался
тему можно закрывать

Iska
01-07-2019, 17:11
что это? »
Скопировать вышеприведённый код (http://forum.oszone.net/post-2877589.html#post2877589), сохранить его в файл с расширением .js.

Nordek
01-07-2019, 19:08
по совету из сообщения №6 у меня не получилось получить Cookie. »Там не было описано как получить cookies. Только загрузка в wget, а не скачивание с помощью wget.

Устанавливаете расширение: cookies.txt (https://chrome.google.com/webstore/detail/njabckikapfpffapmjgojcnbfjonfjfg)

Щелкаете по значку.
Выделяете строку вида:
.yahoo.com TRUE / FALSE 1234567890 B abcdef1ghi2j3&b=1&s=kl
У вас значения 1234567890 и abcdef1ghi2j3&b=1&s=kl будут другими, по этому отсюда не копируйте, копируйте у себя. Эти значения я придумал.

Создаёте текстовый файл с названием cookies и расширением txt
Вносите в cookies.txt скопированные данные вида:
.yahoo.com TRUE / FALSE 1234567890 B abcdef1ghi2j3&b=1&s=kl


P.S Cookies можете сразу сохранить в файл нажав click here.
В таком случае вам придётся открыть cookies.txt и подправить данные т.к сохраняются они криво.
Вы увидите следующее abcdef1ghi2j3&amp;b=1&amp;s=kl
Вам нужно будет удалить amp;, т.е:
Было: abcdef1ghi2j3&amp;b=1&amp;s=kl
Стало: abcdef1ghi2j3&b=1&s=klУстанавливаете расширение: cookies.txt (https://addons.mozilla.org/ru/firefox/addon/cookies-txt/)
Нажимаете на значок для сохранения файла.
Сохраняете.
В случае с Firefox - Не нужно что-то подправлять.

Отсюда (https://finance.yahoo.com/quote/AAU/history?p=AAU) копируете ссылку 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 подставляете свои.

Sham
02-07-2019, 00:13
Nordek, только лишь с кукисами - не работает. Требуется уникальный crumb в урле (он связан с кукисами).

v79italya, он уже установлен в системе (cscript.exe в системной папке). "c:\script.js" - это файл с этим кодом.

v79italya
02-07-2019, 05:53
Sham, спасибо за скрипт. работает замечательно, даже через чур быстро. надеюсь яхоо не забанит) может в коде можно прописать задержку в треть секунды. еще вопрос: в скрипте нет никаких подводных камней, будет скачивать в любом случае?

Nordek, ваш вариант еще не пробовал. позже попробую. спасибо вам.

Iska, спасибо. хорошо что сказали как сделать скрипт. сделал через Notepad++. по двойному клику не сработал, а через ПКМ - открыть с помощью первой же предложенной программой сработало.

у меня был вариант полусырой через макрос. сделал браузер по умолчанию гугл хром и через него скачивал. минус что перед применением макроса надо вручную менять папку для закачек браузера., а потом обратно. приложу файл Excel, только надо авторизоваться на Yahoo.
спасибо всем что довели дело до конца и проблему решили




© OSzone.net 2001-2012