Какой самый быстрый и простой способ загрузить все изображения с веб-сайта - PullRequest
6 голосов
/ 11 января 2012

Какой самый быстрый и простой способ загрузить все изображения с веб-сайта? Более конкретно, http://www.cycustom.com/large/.

Я думаю о чем-то вроде wget или curl.

Чтобы уточнить, во-первых (и в первую очередь) я в настоящее время не знаю, как выполнить эту задачу. Во-вторых, мне интересно узнать, есть ли у wget или curl более простое для понимания решение. Спасибо.

--- ОБНОВЛЕНИЕ @sarnold ---

Спасибо, что ответили. Я думал, что это тоже поможет. Однако это не так. Вот вывод команды:

wget --mirror --no-parent http://www.cycustom.com/large/
--2012-01-10 18:19:36--  http://www.cycustom.com/large/
Resolving www.cycustom.com... 64.244.61.237
Connecting to www.cycustom.com|64.244.61.237|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `www.cycustom.com/large/index.html'

    [  <=>                                                                                                                                                                                                                                  ] 188,795      504K/s   in 0.4s    

Last-modified header missing -- time-stamps turned off.
2012-01-10 18:19:37 (504 KB/s) - `www.cycustom.com/large/index.html' saved [188795]

Loading robots.txt; please ignore errors.
--2012-01-10 18:19:37--  http://www.cycustom.com/robots.txt
Connecting to www.cycustom.com|64.244.61.237|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 174 [text/plain]
Saving to: `www.cycustom.com/robots.txt'

100%[======================================================================================================================================================================================================================================>] 174         --.-K/s   in 0s      

2012-01-10 18:19:37 (36.6 MB/s) - `www.cycustom.com/robots.txt' saved [174/174]

FINISHED --2012-01-10 18:19:37--
Downloaded: 2 files, 185K in 0.4s (505 KB/s)

Вот изображение созданных файлов https://img.skitch.com/20120111-nputrm7hy83r7bct33midhdp6d.jpg

Моя цель - создать папку с файлами изображений. Следующая команда не достигла этой цели.

wget --mirror --no-parent http://www.cycustom.com/large/

Ответы [ 2 ]

4 голосов
/ 29 мая 2013

Файл robots.txt можно игнорировать, добавив следующую опцию:

-e robots=off

Я также рекомендую добавить опцию, чтобы замедлить загрузку, чтобы ограничить нагрузку на сервер.Например, этот параметр ожидает 30 секунд между одним файлом и следующим:

--wait 30
3 голосов
/ 11 января 2012
wget --mirror --no-parent http://www.example.com/large/

--no-parent препятствует тому, чтобы это затошнило весь веб-сайт.


Ааа, я вижу, они разместили robots.txt с просьбой роботов не загружать фотографиииз этого каталога:

$ curl http://www.cycustom.com/robots.txt
User-agent: *
Disallow: /admin/
Disallow: /css/
Disallow: /flash/
Disallow: /large/
Disallow: /pdfs/
Disallow: /scripts/
Disallow: /small/
Disallow: /stats/
Disallow: /temp/
$ 

wget(1) не документирует какой-либо метод игнорирования robots.txt, и я никогда не находил простой способ выполнить эквивалент --mirror в curl(1).Если вы хотите продолжить использовать wget(1), то вам нужно будет вставить посредник HTTP, который возвращает 404 для GET /robots.txt запросов.

Я думаю, что легче изменить подход.Поскольку я хотел больше опыта использования Nokogiri , вот что я придумал:

#!/usr/bin/ruby
require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open("http://www.cycustom.com/large/"))

doc.css('tr > td > a').each do |link|
  name = link['href']
  next unless name.match(/jpg/)
  File.open(name, "wb") do |out|
    out.write(open("http://www.cycustom.com/large/" + name))
  end
end

Это просто быстрый и грязный скрипт - встраивание URL-адреса дважды немного уродливо.Так что, если это предназначено для длительного производственного использования, сначала очистите его - или выясните, как использовать rsync(1).

...