2010-12-22 72 views
-1

我對JS,HTML,CSS,C,C++和C#有相當不錯的知識。我有這個網站爲我們學校的學生提供問題報告,但下載那些我們必須訪問的每一頁,這對我們來說太難了。大約有150個文件。所以...;)使用Perl或任何其他語言下載批量文件

的下載鏈接始終是這樣的:

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

其中#是一個數字。

所以我想如果JavaScript或Perl或Python或任何其他語言可以下載文件並自動保存在本地。目前我不需要太多,只是基本的代碼。我會學習這門語言,然後我會自己開發。所以,請幫助我的好朋友..

回答

3

那怎麼我通常會做這樣的事情在bash:

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

UPDATE由於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 
+1

bash-:

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

應該在大多數Linux發行版,如果它不存在,你可以從這裏下載捲曲工作3.x知道{1..150} :) - 但我最喜歡你的解決方案;)乾杯 – 2010-12-22 10:50:52

+0

k我該如何執行此操作?我有Kubuntu 9.10和Ubuntu 10.04 .... – 2010-12-22 11:16:39

2

這將使用wget的程序做,在shell腳本,它們全部傾倒到當前目錄:

#!/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 
相關問題