Как узнать реальный URL загрузки на сайтах загрузки, которые используют перенаправления

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

Загрузка с таких сайтов работает с Firefox, но как мне получить реальный URL (не только ссылку на страницу перенаправления), чтобы я мог скачать эти файлы с wget?

15 ответов

Решение

Когда вы начали перенос в Firefox, отмените его, щелкните правой кнопкой мыши загрузку и нажмите "Скопировать ссылку на скачивание". Если вы используете более старую версию, щелкните ее правой кнопкой мыши и выберите "Свойства", и в открывшемся окне появится ссылка.

В Chrome - запустите загрузку как обычно - затем перейдите в Меню - Загрузки - и вы увидите прямую ссылку, которая была использована. Или нажмите Ctrl + J, чтобы открыть окно.

Вы можете использовать расширение LiveHTTPHeaders, чтобы определить фактический URL-адрес загружаемого файла. (Следите за GET в частности.)

Хотя я тоже люблю wget, я использую другой похожий инструмент: cURL. В cURL есть функция отслеживания перенаправлений (-L / --location), и это также бесплатно, как wget. Я предлагаю держать оба в вашем инструментальном поясе; у них есть некоторые дополнительные функции.

Вот интересная статья о том, как использовать wget или cURL для загрузки с сайта, который использует куки для аутентификации. Есть упоминание о функции cURL --location для отслеживания перенаправлений. (На самом деле, основываясь на отсутствии специального флага, упомянутого для wget, мне кажется, что wget может неявно следовать за редиректами...?)

Это ответ, который вы так долго искали!

Существует только одно надежное решение в один клик: cliget

Он дает вам команду curl с заголовками, файлами cookie и всем остальным, с кнопкой копирования в буфер обмена, прямо в диалоговом окне загрузки.

Для Firefox: https://addons.mozilla.org/en-US/firefox/addon/cliget

Я не связываю curlwget для Chrome здесь, потому что это некрасиво. Пожалуйста, обновите этот ответ, если Chrome получит столь же элегантный эквивалент.

В этих ситуациях сначала я запускаю реальную загрузку, приостанавливаю ее и копирую URL.

Я обычно использую аддон Firefox DownThemAll, когда есть много ссылок для загрузки, и мне нужно выбрать конкретные URL-адреса.

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

В качестве дополнительной функции вы можете получить URL и вообще пропустить загрузку.
Однако, если вам нужно скачать файл, DownThemAll довольно хорош в качестве ускорителя.

Разве вы не можете использовать wget напрямую, используя --trust-server-name флаг? Это загрузит и сохранит, используя имя файла, к которому он перенаправляет.

Вы можете использовать Curl для загрузки перенаправленного URL:

curl --location http://domainName/fileName 2> /dev/null > fileName

Ваш вопрос немного неясен. Здесь есть 2 URL-адреса: тот, который вы используете, и тот, который вернулся после перенаправления. Первое, что вы должны знать, поскольку оно возникло на вашем компьютере, а второе - это то, что отображается в вашем браузере. Если вопрос относится к тому, где файл находится на перенаправленном сервере, тогда нет никакого способа узнать.

Если вы пытаетесь отладить вызовы, сделанные на сервер, вы можете использовать дополнение Firebug для Firefox, здесь его старые версии: https://addons.mozilla.org/en-US/firefox/addons/versions/1843.

Вы пытались передать URL перенаправления на wget? Иногда они работают на меня.

Вот пример из SourceForge:

$ wget http://sourceforge.net/projects/emule/files/eMule/0.49c/eMule0.49c-Installer.exe/download?use_mirror=ufpr,Centro%20de%20Computacao%20Cientifica%20e%20Software%20Livre
--14:23:20--  http://sourceforge.net/projects/emule/files/eMule/0.49c/eMule0.49c-Installer.exe/download?use_mirror=ufpr,Centro%20de%20Computacao%20Cientifica%20e%20Software%20Livre
Resolvendo sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... conectado!
HTTP requisição enviada, aguardando resposta... 302 Found
Localização: http://downloads.sourceforge.net/project/emule/eMule/0.49c/eMule0.49c-Installer.exe?use_mirror=ufpr [seguinte]
--14:23:21--  http://downloads.sourceforge.net/project/emule/eMule/0.49c/eMule0.49c-Installer.exe?use_mirror=ufpr
Resolvendo downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... conectado!
HTTP requisição enviada, aguardando resposta... 302 Found
Localização: http://ufpr.dl.sourceforge.net/project/emule/eMule/0.49c/eMule0.49c-Installer.exe [seguinte]
--14:23:21--  http://ufpr.dl.sourceforge.net/project/emule/eMule/0.49c/eMule0.49c-Installer.exe
Resolvendo ufpr.dl.sourceforge.net... 200.236.31.1, 200.17.202.1
Connecting to ufpr.dl.sourceforge.net|200.236.31.1|:80... conectado!
HTTP requisição enviada, aguardando resposta... 200 OK
Tamanho: 3342809 (3,2M) [application/x-msdos-program]
Saving to: `eMule0.49c-Installer.exe'

100%[====================================================================================>] 3.342.809   2,35M/s   in 1,4s

14:23:23 (2,35 MB/s) - `eMule0.49c-Installer.exe' saved [3342809/3342809]

Версия, которую я использую:

$ wget --version
GNU Wget 1.10.2 

Существовал аддон для Firefox под названием Splitlink. Он не работает для Firefox 3+, но он работал в Firefox 2. Если вы можете найти его где угодно (его больше нет на официальной странице дополнений), он даст вам больше информации о реальном URL.

Вы можете использовать IDM (Internet Download Manager), когда вы нажимаете на ссылку не для прямой загрузки, она перенаправляет ссылку и показывает прямую ссылку.

Копия URL Firefox определенно самая простая. wget (так как вопрос был помечен) также является хорошим решением, потому что вы можете видеть все промежуточные скачки, а не только окончательный URL:

$ wget ' http://sourceforge.net/projects/pdfcreator/files/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe/download'
--2009-09-10 09:59:53--  http://sourceforge.net/projects/pdfcreator/files/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe/download
Resolving sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/pdfcreator/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe?use_mirror=voxel [following]
--2009-09-10 09:59:54--  http://downloads.sourceforge.net/project/pdfcreator/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe?use_mirror=voxel
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://voxel.dl.sourceforge.net/project/pdfcreator/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe [following]
--2009-09-10 09:59:54--  http://voxel.dl.sourceforge.net/project/pdfcreator/PDFCreator/PDFCreator%200.9.8/PDFCreator-0_9_8_setup.exe
Resolving voxel.dl.sourceforge.net... 74.63.52.167, 69.9.191.19, 69.9.191.18, ...
Connecting to voxel.dl.sourceforge.net|74.63.52.167|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17695920 (17M) [application/octet-stream]
Saving to: `PDFCreator-0_9_8_setup.exe'

10% [=======> ] 1,818,064 609K/s

Вы могли бы использовать netcat инструмент (который часто входит в дистрибутивы Linux) на порт 80 веб-сайта. Здесь показан полный необработанный HTTP-ответ, включая заголовки, содержащие целевой URL перенаправления. Это один из самых прямых способов получения местоположения перенаправления, поскольку вы делаете то же самое, что и загрузчики, когда они следуют за перенаправлениями. Вот пример для URL http://www.example.com/example,

printf 'GET /example HTTP/1.1\r\nHost: www.example.com\r\n\r\n' | netcat www.example.com 80

...или же...

Кроме того, многие браузеры отображают фактический URL-адрес загрузки в Downloads раздел. In these, you can start the download and cancel it right away, then copy the URL (from the download history).

Если вы хотите, чтобы менеджер загрузок обрабатывал загрузку вместо Firefox, вы можете использовать дополнение Flashgot Firefox.

Другие вопросы по тегам