Wget ตัวอย่างบางส่วนของสิ่งที่สามารถทำได้ด้วยเครื่องมือนี้

เกี่ยวกับ wget

ในบทความต่อไปเราจะมาดูที่ Wget ต้องบอกว่า GNU Wget เป็นไฟล์ เครื่องมือฟรี ที่อนุญาตให้ดาวน์โหลดเนื้อหาจากเว็บเซิร์ฟเวอร์ ด้วยวิธีที่ง่ายและรวดเร็ว ชื่อนี้มาจากเวิลด์ไวด์เว็บ (w) และคำว่า get (ในภาษาอังกฤษ ได้รับ). ชื่อนี้มีความหมายว่า: ได้รับจาก WWW.

ทุกวันนี้มีแอปพลิเคชั่นมากมายให้ดาวน์โหลดไฟล์ได้อย่างมีประสิทธิภาพ ส่วนใหญ่ใช้อินเทอร์เฟซเว็บและเดสก์ท็อปและได้รับการพัฒนาสำหรับระบบปฏิบัติการทั้งหมด อย่างไรก็ตามบน Gnu / Linux (นอกจากนี้ยังมีเวอร์ชันสำหรับ Windows) มีไฟล์ ตัวจัดการการดาวน์โหลดที่มีประสิทธิภาพ ของไฟล์ wget ถือว่าเป็นตัวดาวน์โหลดที่ทรงพลังที่สุดที่มีอยู่ รองรับโปรโตคอลเช่น http, https และ FTP.

ดาวน์โหลดไฟล์ด้วย wget

ดาวน์โหลดไฟล์

วิธีที่ง่ายที่สุดในการใช้เครื่องมือนี้คือดาวน์โหลด ระบุไฟล์ สิ่งที่เราต้องการ:

wget http://sitioweb.com/programa.tar.gz

ดาวน์โหลดโดยใช้โปรโตคอลที่แตกต่างกัน

ในฐานะผู้จัดการการดาวน์โหลดที่ดีจึงเป็นไปได้ ขอดาวน์โหลดมากกว่าหนึ่งครั้ง. เรายังสามารถใช้โปรโตคอลที่แตกต่างกันในลำดับเดียวกัน:

wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg

ดาวน์โหลดตามนามสกุล

อีกวิธีหนึ่งในการดาวน์โหลดไฟล์ ไฟล์ที่ใช้นามสกุลเดียวกันมันจะใช้เครื่องหมายดอกจันตัวแทน:

wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf

คำสั่งนี้ใช้ไม่ได้เสมอไปเนื่องจากเซิร์ฟเวอร์บางตัวอาจบล็อกการเข้าถึง wget.

ดาวน์โหลดรายชื่อไฟล์

หากสิ่งที่เราต้องการคือการดาวน์โหลดไฟล์ที่เราพบเราจะต้องบันทึกไฟล์ URL ในไฟล์. เราจะสร้างรายการที่เรียกว่า files.txt และเราจะระบุชื่อรายการให้กับคำสั่ง จำเป็น วางเพียงหนึ่ง URL ต่อบรรทัด ภายใน files.txt

คำสั่งที่เราจะใช้เพื่อดาวน์โหลดรายการที่สร้างขึ้นและที่เราบันทึกในไฟล์. txt จะมีดังต่อไปนี้:

wget -i archivos.txt

เริ่มการดาวน์โหลดใหม่

หากการดาวน์โหลดถูกขัดจังหวะด้วยเหตุผลใดก็ตามเราจะสามารถทำได้ ทำการดาวน์โหลดต่อจากจุดที่ค้างไว้ ใช้งาน ตัวเลือก c ด้วยคำสั่ง wget:

wget -i -c archivos.txt

เพิ่มบันทึกเกี่ยวกับการดาวน์โหลด

หากเราต้องการรับบันทึกเกี่ยวกับการดาวน์โหลดเพื่อที่จะ ควบคุมเหตุการณ์ใด ๆ เราจะต้องเพิ่มไฟล์ -o ตัวเลือก ดังที่แสดงไว้ดังต่อไปนี้:

wget -o reporte.txt http://ejemplo.com/programa.tar.gz

จำกัด แบนด์วิดท์การดาวน์โหลด

ในการดาวน์โหลดที่ยาวมากเราสามารถทำได้ จำกัด แบนด์วิดท์การดาวน์โหลด. ด้วยวิธีนี้เราจะป้องกันไม่ให้การดาวน์โหลดใช้แบนด์วิดท์ทั้งหมดในช่วงเวลาของการดาวน์โหลด:

wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso

ดาวน์โหลดด้วยชื่อผู้ใช้และรหัสผ่าน

หากเราต้องการดาวน์โหลดจากไซต์ที่ต้องใช้ชื่อผู้ใช้ / รหัสผ่านเราจะต้องใช้ตัวเลือกเหล่านี้เท่านั้น:

wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3

ความพยายามในการดาวน์โหลด

ค่าเริ่มต้น, โปรแกรมนี้พยายาม 20 ครั้งในการสร้างการเชื่อมต่อ และเริ่มการดาวน์โหลดในไซต์ที่อิ่มตัวมากเป็นไปได้ว่าแม้จะพยายาม 20 ครั้งก็ไม่สำเร็จ กับ ตัวเลือก t เพิ่มขึ้นเป็นความพยายามมากขึ้น

wget -t 50 http://ejemplo.com/pelicula.mpg

ดาวน์โหลดเว็บไซต์ด้วย wget

ขอความช่วยเหลือคน

ขอความช่วยเหลือคน

Wget ไม่ได้ จำกัด แค่การดาวน์โหลดไฟล์เราจะสามารถดาวน์โหลดแบบเต็มหน้า เราจะต้องเขียนสิ่งที่ชอบ:

wget www.ejemplo.com

ดาวน์โหลดเว็บไซต์และองค์ประกอบพิเศษ

ด้วย ตัวเลือก p เราจะดาวน์โหลดไฟล์ จำเป็นต้องมีองค์ประกอบพิเศษในหน้านี้ เช่นสไตล์ชีตภาพอินไลน์เป็นต้น

หากเราเพิ่มไฟล์ ตัวเลือก r se จะดาวน์โหลดซ้ำได้ถึง 5 ระดับ จากเว็บไซต์:

wget -r www.ejemplo.com -o reporte.log

แปลงลิงค์เป็นโลคัล

โดยค่าเริ่มต้นลิงก์ภายในไซต์จะชี้ไปที่ที่อยู่ของโดเมนทั้งหมด หากเราดาวน์โหลดไซต์ซ้ำแล้วศึกษาแบบออฟไลน์เราสามารถใช้ไฟล์ ตัวเลือกการแปลงลิงค์ ที่จะเปลี่ยนให้เป็น ลิงค์ท้องถิ่น:

wget --convert-links -r http://www.sitio.com/

รับสำเนาเต็มของไซต์

เราจะมีความเป็นไปได้ที่จะได้รับสำเนาเว็บไซต์ที่สมบูรณ์ - ตัวเลือกกระจก เหมือนกับการใช้ไฟล์ ตัวเลือก -r -l inf -N ซึ่งบ่งบอกถึงการเรียกซ้ำในระดับที่ไม่สิ้นสุดและการได้รับการประทับเวลาดั้งเดิมของไฟล์ที่ดาวน์โหลดแต่ละไฟล์

wget --mirror http://www.sitio.com/

แปลงส่วนขยาย

หากคุณดาวน์โหลดทั้งไซต์เพื่อดูแบบออฟไลน์ไฟล์ที่ดาวน์โหลดหลายไฟล์อาจไม่เปิดขึ้นเนื่องจากนามสกุลเช่น. cgi, .asp หรือ. php จากนั้นจึงเป็นไปได้ที่จะระบุด้วย –html- ตัวเลือกส่วนขยาย ไฟล์ทั้งหมดจะถูกแปลงเป็นนามสกุล. html

wget --mirror --convert-links --html-extension http://www.ejemplo.com

นี่เป็นเพียงแนวทางทั่วไป มากกว่าที่คุณสามารถทำได้กับ Wget ใครต้องการสามารถปรึกษา คู่มือออนไลน์ เพื่อปรึกษาความเป็นไปได้ทั้งหมดที่ตัวจัดการการดาวน์โหลดที่ยอดเยี่ยมนี้มอบให้เรา


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Ruben Cardenal dijo

    สำหรับ "ดาวน์โหลดตามนามสกุล" ฉันหยุดอ่านแล้ว คุณไม่สามารถดาวน์โหลดสิ่งที่คุณไม่รู้ได้ เว้นแต่ไดเร็กทอรีที่ร้องขออนุญาตให้แสดงรายการไฟล์และไม่มีดัชนี (และทั้งสองอย่างจะต้องเกิดขึ้นพร้อมกัน) สิ่งที่คุณพูดนั้นไม่สามารถทำได้ ระดับอะไร

    1.    คอมพิวเตอร์นิรนาม dijo

      สวัสดีRubénความไม่รู้ค่อนข้างกล้าหาญ
      สิ่งที่คุณแสดงความคิดเห็นสามารถทำได้ด้วยคำสั่งง่ายๆใน Google:
      ประเภทไฟล์:pdf ไซต์:ubunlogด้วย.
      ในตัวอย่างนี้ไม่มี pdf ในบล็อกนี้ แต่เปลี่ยนโดเมนในตอนท้ายเป็นเว็บที่คุณต้องการและคุณจะเห็นว่าการดูไฟล์ทั้งหมดในเว็บนั้นง่ายเพียงใด
      ขอให้มีความสุขในวันนี้

      1.    เล่นตลก dijo

        แต่ wget ไม่เชื่อมต่อกับ google เพื่อค้นหา pdf ที่อยู่ใน url ไดเรกทอรีเว็บต้องเปิดและต้องมีหน้าดัชนีที่สร้างโดย mod_autoindex หรือคล้ายกันดังที่Rubén Cardenal กล่าว

    2.    จิมมี่โอลาโน dijo

      "คำสั่งนี้ใช้ไม่ได้เสมอไปเนื่องจากเซิร์ฟเวอร์บางตัวอาจบล็อกการเข้าถึง wget"
      การแก้ไขนี้ที่วางไว้ในบทความนี้เนื่องจากฉันไม่เห็นด้วยกับมัน (แม้ว่าในทางเทคนิคจะเป็นไปได้ที่จะบล็อกตัวแทนเว็บบางรายสำหรับคำขอส่วนหัว http และส่งคืนข้อความ 403 "ไม่อนุญาต") และฉันจะอธิบายว่าทำไม:

      เซิร์ฟเวอร์เว็บ Apache ทั้งหมด (และฉันกำลังพูดถึงเซิร์ฟเวอร์จำนวนมาก) โดยค่าเริ่มต้นอนุญาตให้ globbing (บทความ Wikipedia ที่ยอดเยี่ยมอ่าน: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .

      ในทางปฏิบัติหมายถึงตามที่นายระบุ Rubén (และเขาพูดถูก) หากไม่มีการเรียกไฟล์ "index.php" หรือ "index.html" (หรือเรียกง่ายๆว่า "index") เซิร์ฟเวอร์จะส่งคืนรายการไฟล์และไดเรกทอรีอย่างเงียบ ๆ (แน่นอนในรูปแบบ ของหน้า html ที่มีข้อมูลเป็นเว็บลิงค์สำหรับแต่ละไฟล์) บริการเว็บส่วนใหญ่ปิดใช้งานคุณสมบัตินี้ผ่านไฟล์. htacces (พูดอย่างเคร่งครัด Apache2) เพื่อเหตุผลด้านความปลอดภัย

      นี่คือความเก่งกาจของ wget (ดูเรื่องราวอีกครั้งใน Wikipedia สิ่งที่คุณรู้จักมากที่สุด: https://es.wikipedia.org/wiki/GNU_Wget ) เพื่อวิเคราะห์หรือ "แยกวิเคราะห์" ข้อมูลดังกล่าวและแยกเฉพาะส่วนขยายที่เราร้องขอ

      ตอนนี้ในกรณีที่ไม่ได้ผลไม่ว่าจะด้วยเหตุผลใดก็ตามเราสามารถลองใช้ฟังก์ชัน wget ขั้นสูงอื่น ๆ ได้ฉันจะพูดเป็นภาษาอังกฤษโดยตรง:

      คุณต้องการดาวน์โหลด GIF ทั้งหมดจากไดเร็กทอรีบนเซิร์ฟเวอร์ HTTP คุณพยายาม 'wget http://www.example.com/dir/*.gif’แต่ไม่ได้ผลเนื่องจากการดึง HTTP ไม่รองรับ GLOBBING (ฉันใส่ตัวพิมพ์ใหญ่) ในกรณีนั้นให้ใช้:

      wget -r -l1 --no-parent -A.gif http://www.example.com/dir/

      verbose มากขึ้น แต่ผลเหมือนกัน '-r -l1' หมายถึงการเรียกข้อมูลแบบวนซ้ำ (ดูการดาวน์โหลดแบบเรียกซ้ำ) โดยมีความลึกสูงสุดคือ 1 '–no-parent' หมายความว่าการอ้างอิงไปยังไดเร็กทอรีหลักจะถูกละเว้น (ดูขีด จำกัด ของไดเรกทอรี) และ '-A gif 'หมายถึงการดาวน์โหลดเฉพาะไฟล์ GIF '-A « * .gif »' ก็ใช้ได้เช่นกัน

      หากคุณทำงานในวิธีสุดท้ายนี้ wget จะสร้างโฟลเดอร์ให้เราด้วยที่อยู่เว็บที่ร้องขอในโฟลเดอร์เริ่มต้นที่เรากำลังทำงานอยู่และจะสร้างไดเรกทอรีย่อยหากจำเป็นและจะวางไว้ที่นั่นตัวอย่างเช่นภาพ. gif ที่เรา คำขอ.

      --------
      อย่างไรก็ตามหากยังไม่สามารถรับเฉพาะไฟล์บางประเภท (ตัวอย่างเช่น * .jpg) เราจะต้องใช้พารามิเตอร์« – page-requisites »ซึ่งจะดาวน์โหลดองค์ประกอบภายในทั้งหมดของหน้า html (รูปภาพ, เสียง, css ฯลฯ ) ร่วมกับหน้า html เอง ("–page-requisites" สามารถย่อได้ "-p") และจะเทียบเท่ากับการดาวน์โหลดสิ่งต่างๆเช่น "mhtml" https://tools.ietf.org/html/rfc2557

      ฉันหวังว่าข้อมูลนี้จะเป็นประโยชน์สำหรับคุณ

      1.    เดเมียน อาโมเอโด dijo

        ขอบคุณสำหรับบันทึก Salu2.

  2.   หลังธนาคาร dijo

    ฉันคิดว่าคุณมีข้อผิดพลาดสองบรรทัดแรกมีคำสั่งเดียวกัน

  3.   ไมค์ dijo

    ขอบคุณมากการสอนที่ดีมาก!