Wget скачать 403 запрещено или 503 сервис недоступен

прежде всего, я должен сказать, что есть много вопросов об этой ошибке, но я почти попробовал все, но до сих пор у меня есть.

url="https://cdn59.my.mail.ru/hv/55045204.mp4?sign=2cca46c09181dc952b3140f2ea3852d90cc2a19a&slave[]=s%3Ahttp%3A%2F%2F127.0.0.1%3A5010%2F55045204-hv.mp4&p=f&expire_at=1438858800&touch=1436155554&region=76"

когда я использую wget $url Это дает мне ошибку 503 служба недоступна.

затем я добавил свой пользовательский агент, как wget -U 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36' $url

сейчас .Это дает мне ошибку 403 Forbidden. Я тоже пробовал header or --no-check-certificate и их комбинации, но все же у меня есть какая-то досадная ошибка. (URL-адрес имеет некоторые metacharecters поэтому я использовал либо одинарная кавычка или двойная кавычка.)

интересно, что я могу скачать его из всех браузеров,как Firefox, Chrome и т. д.

что может быть проблемой с моей ссылкой ?

примечание. Я всегда обновляю url-адрес, получая JSON-файл из wget или браузера.
Это referer JSON url videoapi.my.mail.ru/videos/mail/pasha.44444/video/_myvideo/397.json

28
задан albal
27.11.2022 9:47 Количество просмотров материала 3225
Распечатать страницу

2 ответа

вам надо войти в службы и сведения о сеансе, возможно, в печенье. При использовании wget вы не предоставляете (или не получаете и не используете) файлы cookie, необходимые для получения информации о сеансе.

Что-то вроде ответ на stackoverflow может помочь.

1
отвечен albal 2022-11-28 17:35

Я хочу сказать, что, наконец, мне удалось загрузить его из wget, несмотря на заголовок Access-Control-Allow-Origin.

#!/bin/bash
link="http://api.video.mail.ru/videos/mail/carpath1a/_myvideo/289.json"
name="BlaBlaBla"
mr480=$(printf "%s\n" "tmpvar=$(wget -qO- --save-cookies=cookies \"$link\" | perl -ne 's:.*\"key\"\:\"(.*?)\".*\"(http.*?)\".*:$1\t$2: && print') ; linktemp=$(echo \"$tmpvar\"|grep 480p|awk '{print $2}') ; wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 10 --continue -nv --show-progress --load-cookies=cookies \"$linktemp\" -O $name-480 ; while [[ $? = 8 ]];do wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 10 --continue -nv --show-progress --load-cookies=cookies \"$linktemp\" -O $name-480 ;done")
eval "$mr480" 
rm cookies

после 2-10 раз повторите через в то время как цикл он начинает загрузку. Я не мог понять, почему он отправляет 503 или 403, но я знаю, что эти две ошибки типа возвращаются с кодом 8 поэтому я использовал цикл while. Примечание: не используйте && вместо ; потому что если вы используете && он не будет работать в то время как цикл, так что не удастся и закончил сценарий.

0
отвечен makgun 2022-11-28 19:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх