題:
使用curl從網頁獲取所有文件
Thi G.
2013-08-31 18:20:40 UTC
view on stackexchange narkive permalink

我想使用 curl 從下一頁一次下載所有文件: http://www.ime.usp.br/~coelho/mac0122-2013 / ep2 / esqueleto /

我嘗試了 curl http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ 和它在終端中返回了很多行,但是沒有得到任何文件。

五 答案:
Lri
2013-08-31 18:56:39 UTC
view on stackexchange narkive permalink

改為使用 wget

通過Homebrew進行安裝: brew install wget 或MacPorts: sudo port install wget

要從目錄列表中下載文件,請使用 -r (遞歸), -np (不遵循指向父目錄的鏈接)和 -k 使下載的HTML或CSS中的鏈接指向本地文件(@xaccrocheur信用)。

  wget -r -np -k http:// www。 ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto /  

其他有用的選項:

  • -nd (無目錄):將所有文件下載到當前目錄
  • -e robots.off :忽略robots.txt文件,請勿下載robots.txt文件
  • -A png,jpg :僅接受擴展名為 png jpg
  • -m (鏡像): -r --timestamping --level inf --no-remove-listing
  • -nc -no-clobber :如果文件存在,請跳過下載
wget -r -np -k http:// your.website.com / specific / directory`。訣竅是使用`-k`轉換鏈接(圖像等)以供本地查看。
“ brew”和“ port”不適合我安裝wget。我該怎麼辦?
@HoseynHeydari:您可以使用rudix.org來編譯osx的二進製文件。所以你需要安裝rudix然後使用:sudo rudix install wget
選項-k並不總是有效。例如,如果您有兩個鏈接指向您要遞歸捕獲的網頁上的同一文件,則`wget`似乎只能轉換第一個實例的鏈接,而不能轉換第二個實例的鏈接。
nohillside
2013-08-31 19:09:59 UTC
view on stackexchange narkive permalink

curl 只能讀取單個網頁文件,實​​際上,您得到的一串行是目錄索引(如果您訪問該URL,也會在瀏覽器中看到)。要使用 curl 和一些Unix工具魔術來獲取文件,您可以對$(curl -s http://www.ime中的文件使用

 之類的東西。 usp.br/~coelho/mac0122-2013/ep2/esqueleto/ | grep href | sed's /.* href =“ //'| sed's /".*//'| grep'^ [a-zA -Z]。*');做curl -s -O http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/$filedone  

,它將把所有文件放入當前目錄。

對於更詳盡的需求(包括從具有文件夾/目錄的站點中獲取一堆文件), wget (已在另一個答案中提出)是更好的選擇。 >

謝謝。這是一個不錯的解決方案,提供的工作示例很棒!
xmllint --html --xpath // a / @href'可能比grep更好。
Udit Desai
2016-06-19 09:22:43 UTC
view on stackexchange narkive permalink

參考: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/

您可以使用以下命令:

  wget --execute =“ robots = off”-鏡像--convert-links --no-parent --wait = 5 <website-url>
 

每個選項的說明

  • wget :用於發出CURL請求並將遠程文件下載到我們本地計算機的簡單命令。
  • -execute =“ robots = off” :在瀏覽頁面時,它將忽略robots.txt文件。如果您沒有獲取所有文件,這將很有幫助。
  • -mirror :此選項將基本上鏡像給定URL的目錄結構。這是 -N -r -l inf --no-remove-listing 的快捷方式,這意味著:
    • -N :除非重新下載文件,否則不要重新獲取文件
    • -r :指定遞歸下載
    • -l inf :最大遞歸深度(inf或0表示無限)
    • -禁止刪除列表:請勿刪除“ .listing”文件
  • -轉換鏈接:使下載的HTML或CSS中的鏈接指向本地文件
  • -無父級:請勿升至父目錄
  • -wait = 5 :兩次檢索之間要等待5秒鐘。這樣我們就不會破壞服務器。
  • <website-url> :這是從中下載文件的網站URL。

開心下載:笑臉:

user242053
2017-06-18 18:08:34 UTC
view on stackexchange narkive permalink

您可以使用 httrack(適用於Windows / MacOS,可以通過Homebrew安裝)。

對我來說有些新意,謝謝。最好的是它又快又快:一線。只是減少脂肪,避免所有垃圾。
user9290
2014-02-15 22:05:43 UTC
view on stackexchange narkive permalink

對於那些希望通過GUI使用應用程序的人來說,有便宜的共享軟件程序 DeepVacuum for Mac OS X,該程序在用戶中實現了 wget 友好的方式,並帶有可以處理常用任務的預設列表。您還可以將自己的自定義配置另存為預設。

enter image description here



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...