วิธีบันทึกหน้าเว็บทั้งหมดที่เชื่อมโยงจากหน้าเว็บเดียว


15

ฉันต้องการบันทึกหน้าเว็บนี้และทุกหน้าที่เชื่อมโยงไปถึง และหวังว่าจะมีการเชื่อมโยงเดียวกันระหว่างหน้าเว็บที่บันทึกไว้

มีวิธีบางอย่างแทนที่จะเปิดและบันทึกแต่ละหน้าที่เชื่อมโยงหรือไม่

คำตอบ:


12

คุณสามารถทำสิ่งที่คุณต้องการด้วยยูทิลิตี้บรรทัดคำสั่งwget หากคุณระบุ-rตัวเลือกนี้จะมีการดาวน์โหลดหน้าเว็บซ้ำ ๆ ตัวอย่างเช่น:

wget -r http://mat.gsia.cmu.edu/orclass/integer/integer.html

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

wget -r 5 http://mat.gsia.cmu.edu/orclass/integer/integer.html

@ Mark: ขอบคุณ! ตอนนี้ฉันพยายามที่จะดาวน์โหลดmat.gsia.cmu.edu/orclassและหน้าเว็บที่เชื่อมโยงโดยใช้คำสั่งwget -r mat.gsia.cmu.edu/orclass wget จะสร้างไดเรกทอรี mat.gsia.cmu.edu ภายใต้ที่ฉันระบุและดาวน์โหลดหน้าภายใต้ แต่ลิงก์ระหว่างหน้าดาวน์โหลดไม่ได้มี mat.gsia.cmu.edu ในเส้นทางของพวกเขาดังนั้นมันจึงกลายเป็นปัญหาและฉันไม่สามารถไปจากหน้าหนึ่งไปอีกหน้าหนึ่งได้โดยคลิกที่ลิงก์ ฉันสงสัยว่าทำไมและจะแก้ปัญหาอย่างไรและอย่างไร ขอบคุณ!
ทิม

ฉันไม่คิดว่าคุณสามารถดาวน์โหลดลิงก์ภายนอกซ้ำ @Tim
Wuffers

"ลิงก์ภายนอก" หมายถึงสิ่งที่ไม่ได้อยู่ภายใต้เส้นทางปัจจุบันหรือไม่?
ทิม

@Tim: โดยลิงก์ภายนอกฉันหมายถึงลิงก์ที่อ้างอิงภายนอก mat.gsi.cmu.edu
Wuffers

1
@Tim: โอ้ตกลง ขอโทษที่เข้าใจผิด. ฉันคิดว่าคุณสามารถลองแก้ไขไฟล์ HTML ด้วยตัวเองเพื่อตรวจสอบและลองใช้งานได้
Wuffers

10

เธรดนี้เก่าแล้ว แต่คนอื่น ๆ อาจมองดู ขอบคุณ Wuffers ที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง แต่เพื่อขยายคำตอบของ Wuffers: wget รุ่นใหม่มีตัวเลือกที่มีประโยชน์มากมายสำหรับการเรียกลิงก์ซ้ำและแก้ไขเป็นลิงก์ท้องถิ่นเพื่อให้คุณสามารถนำทางสำเนาโลคอลได้ ของเว็บไซต์ ใช้อ็อพชัน -r เพื่อเรียกคืน, อ็อพชัน -k เพื่อแก้ไขลิงก์โลคัล, อ็อพชัน -H เพื่อข้ามไปยังโดเมนอื่นนอกเหนือจากโดเมนดั้งเดิม, อ็อพชัน -D เพื่อ จำกัด โดเมนที่คุณสำรวจเข้าไป, ตัวเลือก -l เพื่อ จำกัด ความลึกของการเรียกซ้ำและตัวเลือก -p เพื่อให้แน่ใจว่าใบของการสำรวจเส้นทางของคุณมีทุกสิ่งที่พวกเขาต้องการที่จะแสดงอย่างถูกต้อง ตัวอย่างเช่นสิ่งต่อไปนี้จะดาวน์โหลดเพจและทุกสิ่งที่เชื่อมโยงไปยังทันทีทำให้สามารถเรียกดูได้ในเครื่อง

wget -r -l 1 -p -k -H -D domain.com,relateddomain.com http://domain.com/page/in/domain

ด้วยการใช้คำสั่งที่คล้ายกับคำสั่งด้านบนทำให้ฉันสามารถดาวน์โหลดหน้า wiki ที่มีลิงก์ภายนอกไปยังดิสก์ภายในเครื่องของฉันได้โดยไม่ต้องดาวน์โหลดข้อมูลภายนอกจำนวนเมกะไบต์ ตอนนี้เมื่อฉันเปิดรูทเพจในเบราว์เซอร์ของฉันฉันสามารถนำทางต้นไม้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต สิ่งเดียวที่ทำให้รำคาญคือหน้ารูทถูกฝังในไดเรกทอรีย่อยและฉันต้องสร้างหน้าเปลี่ยนเส้นทางระดับบนสุดเพื่อให้สะดวกในการแสดง อาจต้องใช้การทดลองและข้อผิดพลาดเพื่อทำให้ถูกต้อง อ่านหน้าคน wget และการทดสอบ


4

คุณสามารถใช้โปรแกรมรวบรวมข้อมูลเว็บไซต์เช่นhttrackซึ่งฟรี

จากเว็บไซต์

[httrack] ช่วยให้คุณสามารถดาวน์โหลดเว็บไซต์เวิลด์ไวด์จากอินเทอร์เน็ตไปยังไดเรกทอรีท้องถิ่นสร้างไดเรกทอรีทั้งหมดซ้ำเรียก HTML, ภาพและไฟล์อื่น ๆ จากเซิร์ฟเวอร์ไปยังคอมพิวเตอร์ของคุณ HTTrack จัดเรียงโครงสร้างลิงก์ที่สัมพันธ์กันของเว็บไซต์เดิม เพียงเปิดหน้าเว็บไซต์ "mirrored" ในเบราว์เซอร์ของคุณและคุณสามารถเรียกดูเว็บไซต์จากลิงก์ไปยังลิงก์ราวกับว่าคุณกำลังดูออนไลน์อยู่


1
แอปพลิเคชันยอดเยี่ยม +1! แต่มันก็คว้าไฟล์ซิปที่ลิงค์มาทั้งหมดด้วยซึ่งฉันไม่ต้องการ แต่ฉันควรอ่านคำแนะนำก่อน!
finlaybob

ใช่มันสามารถ / จะติดตามลิงค์ทั้งหมดดังนั้นจะดาวน์โหลดไฟล์ (@Finlaybob คุณรู้หรือไม่ว่าหน้าแรกที่ปรากฏในโปรไฟล์ของคุณถูกแฮ็กหรือไม่)
RJFalconer

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