Пакетная загрузка файлов с использованием Perl или любого другого языка - PullRequest
0 голосов
/ 22 декабря 2010

Я достаточно хорошо знаю JS, HTML, CSS, C, C ++ и C #. У меня есть этот веб-сайт, который предлагает вопросники для нас, школьников, но для загрузки тех, что мы должны посетить каждую страницу, это слишком сложно для нас. Есть около 150 файлов. Итак ...;)

Ссылки для скачивания всегда выглядят так:

http://www.example.com/content/download_content.php?content_id=#

где # - число.

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

Ответы [ 3 ]

3 голосов
/ 22 декабря 2010

Я обычно так поступаю в bash:

for i in `seq 1 1000` ; do wget "http://www.example.com/content/download_content.php?content_id=$i" -O $i.html ; done

ОБНОВЛЕНИЕ Поскольку URL-адреса указывают на несколько типов файлов, вы можете использовать команду fileтип загружаемого файла и соответственно настройте расширение:

for i in `seq 1 1000`
do
   wget "http://www.example.com/content/download_content.php?content_id=$i" -O $i.out
   mime=`file --brief --mime-type $i.out`
   if [ "$mime" == "application/pdf" ]
   then
      mv $i.out $i.pdf
   elif [ "$mime" == "application/vnd.ms-office" ]
   then
      mv $i.out $i.doc
   fi
done
2 голосов
/ 22 декабря 2010

Это будет сделано в сценарии оболочки с помощью программы wget, выгрузив их все в текущий каталог:

#!/bin/sh
i=1
while [ $i -le 150 ]; do
  wget -O $i.out "http://www.example.com/content/download_content.php?content_id=$i"
  i = $((i + 1))
done
1 голос
/ 22 декабря 2010

Как насчет использования curl вместо:

curl -O http://www.example.com/content/download_content.php?content_id=#[1-150]

Должно работать на большинстве дистрибутивов Linux, а если его нет, вы можете скачать curl отсюда: http://curl.haxx.se/ или с 'apt-get install curl'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...