Я хочу загрузить изображения с других сайтов, которые защищены hotlink. Я не хочу связывать эти изображения с моим сайтом. Я просто хотел их скачать.Как скачать изображения с защитой от ссылок?
10
A
ответ
11
usual hotlink-protection method проверяет, соответствует ли "Referrer" HTTP Header доменное имя исходного сайта.
Вы можете легко обойти это, установив этот заголовок вручную, чтобы указать на страницу на веб-сайте.
7
Вам необходимо передать HTTP-адрес реферера. Вы можете сделать это с помощью Wget на большинстве систем UNIX следующим образом:
wget --referer=http://www.google.com/ http://www.google.com/intl/en_ALL/images/logo.gif
Здесь сырой способ сделать это так, вы видите именно то, что происходит:
telnet google.com 80
GET /intl/en_ALL/images/logo.gif HTTP/1.1
REFERER: http://www.google.com/
HOST: www.google.com
3
Вы можете скачать хотлинк защищенные изображения, используя следующий код:
URL url = new URL("http://www.somesite.com/picture.jpg");
URLConnection urlCon = url.openConnection();
urlConn.setRequestProperty("Referer", "http://www.somesite.com");
urlConn.connect();
InputStream urlStream = urlCon.getInputStream();
Image image = ImageIO.read(urlStream);
0
Расширение Postman для Chrome позволяет создавать пользовательские HTTP-запросы. Я нашел изображение с заблокированной ссылкой, скопировал его url и ввел его в Postman, чтобы ПОЛУЧИТЬ.
С Java? Просто исполняйте обычный танец «url.openConnection». Пока вы не проходите в заголовке 'Referer', вы должны получить изображение. – bobince
(Чтобы уточнить, большая часть защиты hotlink разрешает соединения без «Referer» вообще, поскольку они являются необязательными в HTTP и, возможно, не присутствуют, они только блокируют настоящее «Referer», указывающее на сторонний сайт. некоторые блокираторы, которые * требуют, чтобы сайт-участник присутствовал в «Referer» (в этом случае вам нужно было бы добавить его вручную), но поскольку у этого есть много нежелательных побочных эффектов для сайта, это должно быть довольно редко .) – bobince