จะดาวน์โหลดรายชื่อไฟล์จากไฟล์เซิร์ฟเวอร์ได้อย่างไร?


10

ฉันจะดาวน์โหลดรายการไฟล์จากเซิร์ฟเวอร์ไฟล์แบบนี้ได้อย่างไรhttp://www.apache.org/dist/httpd/binaries/

ฉันคิดว่าฉันสามารถใช้ wget ได้ แต่จากนั้นจะพยายามรับลิงก์ทั้งหมดและไฟล์ html ด้วย มีเครื่องมือที่ดีกว่านี้หรือไม่?


เพียงชี้แจงคำถามของคุณ: คุณต้องการรายการไฟล์ที่สามารถดาวน์โหลดได้จากเซิร์ฟเวอร์ไม่ใช่ตัวไฟล์เอง (ยัง)
akira

คำสั่งเช่น `wget - no-verbose --spider --no-directory --recursive --level = 2 apache.org/dist/httpd/binariesทำงานอย่างไร? หากคุณอาจจะเฉพาะเจาะจงมากขึ้นที่อาจช่วย
DaveParillo

คำตอบ:


12

คุณสามารถระบุนามสกุลไฟล์ที่wgetจะดาวน์โหลดเมื่อรวบรวมข้อมูลหน้าเว็บ:

wget -r -A zip,rpm,tar.gz www.site.com/startpage.html

นี้จะทำการค้นหา recursive และดาวน์โหลดเฉพาะไฟล์ที่มี.zip, .rpmและ.tar.gzส่วนขยาย


8

สมมติว่าคุณต้องการรายการไฟล์บนเซิร์ฟเวอร์โดยไม่ต้องดึงไฟล์ (ยัง):

%> wget -r -np --spider http://www.apache.org/dist/httpd/binaries/ 2> & 1 | awk -f filter.awk | UNIQ

ในขณะที่ 'filter.awk' มีลักษณะเช่นนี้

/^--.*-- http: \ / \ /.* [^ \ /] $ / {u = $ 3; }
/ ^ Length: [[: digit:]] + / {print u; }

จากนั้นคุณอาจต้องกรองบางรายการเช่น

"http://www.apache.org/dist/httpd/binaries/?C=N;O=D"

0

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

คุณสามารถใช้คำสั่งต่อไปนี้:

wget --execute="robots = off" --mirror --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 สำหรับอนันต์)
    • --no-remove-listing: อย่าลบไฟล์ '.listing'
  • --convert-links: สร้างลิงก์ใน HTML หรือ CSS ที่ดาวน์โหลดชี้ไปที่ไฟล์ในเครื่อง
  • --no-parent: ไม่ต้องขึ้นไปที่ไดเรกทอรีหลัก
  • --wait=5: รอ 5 วินาทีระหว่างการดึงข้อมูล เพื่อที่เราจะได้ไม่ทารุณเซิร์ฟเวอร์
  • <website-url>: นี่คือเว็บไซต์ที่จะดาวน์โหลดไฟล์

Happy Downloading: smiley:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.