Сохранение изображения из src, созданного сервлетом, на жесткий диск - PullRequest
0 голосов
/ 16 августа 2010

Я не знаю, как автоматически получить и сохранить изображение на моем жестком диске, учитывая этот источник HTML:

<img src="https://someRemoteServer/servlet/GetItemServlet?ts=32352.3&itemtype=blabla">

Я попробовал wget, но он сохраняет запрос GetItemServlet только на моем жестком диске.

Я хочу перебрать 700 изображений на удаленном сервере (которым я не владею и не имею доступа к бэкэнду) и сохранить их все на моем жестком диске с уникальным идентификатором.

Редактировать: Вывод wget:

HTTP Request sent, waiting for Response... 200 OK
Länge: 0 [text/plain]
Save in »»GetItemServlet?ts=32352.3««.

Размер самого файла составляет 0 КБ.

Когда wget разрешает множество параметров, которые он выводит:

[29] 48426
[30] 48427
--2010-08-16 21:52:02--  https://media.myRemoteServer.com/servlet/GetItemServlet?ts=56555
-bash: 1281978458512=1: command not found

но затем продолжается

[2]   Done                    itemtype_text=[Keine+Auswahl]
..
[29]-  Done                    id=9
[30]+  Done                    res=2

Edit2:

После выхода из амперсанда и вопросительных знаков wget работает лучше и выдает совершенно другое сообщение об ошибке:

File name too long

и

Cannot write to >GetItemServlet?ts=32352.3&itemtype=blabla< (Unknown error: 0) 

Edit3: Бесконечная история. В любом случае это должно быть у суперпользователя. Я сократил URL-адрес, и он работает и теперь действительно сохраняет файл. В этом файле, который выглядит как HTML, написано, что сессия закончилась, и мне нужно войти в систему. Я предоставил имя пользователя и пароль с помощью wget. Но при входе на этот сайт вручную через браузер вы должны сделать это через формы входа в систему.

1 Ответ

1 голос
/ 16 августа 2010

Это должно работать просто отлично. Возможно, пиявки автоматически обнаруживаются и возвращают другой ответ. Поскольку вы не рассказали о фактическом ответе в деталях, он покажется вам в темноте. Попробуйте предоставить законный пользовательский агент, или поддерживать сеанс, или использовать немного более умный сторонний инструмент для обучения.

Тем не менее, вы понимаете, что большинство веб-мастеров не очень ценят такие действия? Пропускная способность сети и загрузка процессора не свободны.


Обновление согласно вашему обновлению: имя кажется слишком длинным, чтобы быть допустимым именем файла для сохранения, также ? является недопустимым символом в именах файлов (по крайней мере, в Windows). Это может быть основной причиной всего этого. Я не делаю wget, но вы должны по крайней мере указать имя выходного файла. Это будет объяснено в его руководстве. Этот вопрос сейчас, вероятно, лучше подходит для http://superuser.com.

...