2010-01-01 82 views
1

我想要做的是下載一組圖像,其中約200個。現在,我可以在firefox上安裝一些插件或腳本,只需點擊幾下就可以下載em,但在我想到這樣做之前,我正在考慮如何使用幾行代碼來完成此操作。一次下載一個文件,並非全部一次

我可以使用的語言是C#,Java和PHP。我寧願在PHP中這樣做,因爲我以前從來沒有用過curl。

圖像整齊排列,我已經檢查過。文件名是一個在整個系列中保持不變的字符串,並在末尾附加了.1(點1),.2,.3等等......

所以我在想使用foreach循環,但我不確定這將如何執行。即使之前從未與curl一起工作過,但有些東西告訴我,如果我不告訴curl等待每個圖像完成,它只會衝過foreach循環,因此嘗試一次全部下載它們。

使用curl時,這是如何工作的?我是否需要設置一些東西,還是我的擔心是不公正的,並且對我證明文檔的錯誤進行了研究?

雖然我在這裏:我應該知道的其他事情,第一次使用捲曲?

+0

如果我是你,我會用bash來做。 – erenon 2010-01-01 19:20:13

回答

1

我會告訴你去用PHP和捲曲。這是一個很好的課程,你可以使用: http://www.bitrepository.com/download-image.html

該類默認設置爲等待60秒,以允許圖像正確下載。

您只需要做更多的事情就是爲圖像名稱包含一個循環。

+0

經過測試和工作。謝謝你給我看。分析這個班級的工作使得捲曲更加清晰。 – KdgDev 2010-01-02 00:55:44

1

curl下載完成後退出。因此,如果您使用PHP的system調用(等待直到您調用的子進程已完成)調用curl,則圖像將一個接一個地下載。

0

別擔心,libcurl是同步的。即使您要異步使用libcurl(或其他任何其他庫),也可以在上一圖像的回調結束時下載下一張圖像。

在PHP中,您可以循環我假設的file_get_contents。 C#和Java也有非捲曲網絡接口。

1

在C#中,您可以使用WebClient類進行此類工作,特別是它的DownloadFile method,它是同步的;順便說一句,WebClient也提供異步方法。
但是,在Linux上,我會使用bash和wget。

+0

也嘗試過這種方式,真的很棒。謝謝你的提示。 – KdgDev 2010-01-02 00:55:13

相關問題