น่าเสียดายที่ไม่มีคำตอบใดที่สามารถแก้ปัญหาการทำมิเรอร์สมบูรณ์จากเว็บไซต์ที่เก็บถาวรได้ (โดยไม่ต้องทำซ้ำทุกไฟล์หลายสิบครั้ง) ดังนั้นฉันจึงแฮ็ควิธีอื่นด้วยกัน การแฮ็กเป็นคำที่สำคัญเนื่องจากโซลูชันของฉันไม่ใช่โซลูชันทั่วไปหรือเป็นคำที่ง่ายมาก (อ่าน: คัดลอกและวาง) ฉันใช้Privoxy Proxy Serverเพื่อเขียนไฟล์ใหม่ทันทีขณะทำการมิเรอร์ด้วย wget
แต่ก่อนอื่นสิ่งที่ยากมากเกี่ยวกับการมิเรอร์จากWayback Machineคืออะไร?
ปัญหาที่ 1 + วิธีแก้ไข
แถบเครื่องมือ Wayback มีประโยชน์สำหรับการใช้งานแบบโต้ตอบ แต่อาจรบกวนการทำงานของระบบ ดังนั้นกำจัดมันด้วยกฎตัวกรองแบบส่วนตัว
FILTER: removewaybacktoolbar remove Wayback toolbar
s|BEGIN WAYBACK TOOLBAR INSERT.*END WAYBACK TOOLBAR INSERT|Wayback Toolbar removed|s
ปัญหาที่ 2 + วิธีแก้ไข
ฉันต้องการที่จะจับภาพเว็บไซต์ทั้งหมดดังนั้นจึงจำเป็นต้องมีความลึกในการเรียกซ้ำไม่น้อยเกินไป แต่ฉันไม่ต้องการรวบรวมข้อมูลเซิร์ฟเวอร์ทั้งหมด โดยปกติแล้วคุณจะใช้ตัวเลือกที่ไม่มีผู้ปกครอง-np
ของ wget เพื่อจุดประสงค์นั้น แต่นั่นจะไม่ทำงานที่นี่เพราะคุณต้องการได้รับ
http://web.archive.org/web/ 20110722080716 /http://cst-www.nrl.navy.mil/lattice/struk/hcp.html
แต่ยัง
http://web.archive.org/web/ 20110801041529 /http://cst-www.nrl.navy.mil/lattice/struk/a_f.html
(สังเกตเห็นการประทับเวลาที่เปลี่ยนแปลงในเส้นทาง) การข้ามไป-np
จะจบลงด้วยการรวบรวมข้อมูล(...)http://cst-www.nrl.navy.mil
และในที่สุดก็สามารถเรียกดูnavi.mil
ไซต์ทั้งหมดได้ ฉันไม่ต้องการสิ่งนั้นอย่างแน่นอน! ดังนั้นตัวกรองนี้พยายามเลียนแบบ-np
พฤติกรรมด้วยเครื่อง Wayback:
FILTER: blocknonparentpages emulate wget -np option
s|/web/([0-9].*)/http://cst-www.nrl.navy.mil/lattice/|THIS_IS_A_GOOD_$1_ADDRESS|gU
s|/web/(.*)/http(.*)([" ])|http://some.local.server/404$3|gU
s|THIS_IS_A_GOOD_(.*)_ADDRESS|/web/$1/http://cst-www.nrl.navy.mil/lattice/|gU
ฉันจะปล่อยให้มันเป็นแบบฝึกหัดที่จะขุดลงในไวยากรณ์ สิ่งที่ตัวกรองนี้จะเป็นต่อไปนี้: มันแทนที่ Wayback URL ทั้งหมดเช่นhttp://web.archive.org/web/20110801041529/http://www.nrl.navy.mil/
มีhttp://some.local.server/404
ตราบเท่าที่พวกเขาไม่ได้http://cst-www.nrl.navy.mil/lattice/
มี
http://some.local.server/404
คุณจะต้องปรับ นี่คือการส่งข้อผิดพลาด 404 เพื่อ wget อาจเป็นไปได้ว่า Privoxy สามารถทำสิ่งนั้นได้อย่างสง่างามยิ่งขึ้น อย่างไรก็ตามวิธีที่ง่ายที่สุดสำหรับฉันคือเพียงเขียนลิงค์ไปยังหน้าที่ไม่มีอยู่ในเซิร์ฟเวอร์ http ท้องถิ่นดังนั้นฉันจึงติดอยู่กับสิ่งนี้
และคุณยังต้องปรับทั้งสองปรากฏของhttp://cst-www.nrl.navy.mil/lattice/
การสะท้อนให้เห็นถึงเว็บไซต์ที่คุณต้องการกระจก
ปัญหาที่ 3 + วิธีแก้ไข
และในที่สุดหน้าบางรุ่นที่เก็บถาวรอาจเชื่อมโยงไปยังหน้าในภาพรวมอื่น และนั่นก็เป็นอีกสิ่งหนึ่ง และอื่น ๆ ... และคุณจะจบลงด้วยสแนปชอตจำนวนมากในหน้าเดียวกัน - และ wget จะไม่มีทางจัดการจนเสร็จจนกว่าจะได้สแน็ปช็อตทั้งหมด ฉันไม่ต้องการมันใช่! ที่นี่ช่วยได้มากว่าเครื่อง Wayback นั้นฉลาดมาก คุณสามารถขอไฟล์ได้
http://web.archive.org/web/ 20110801041529 /http://cst-www.nrl.navy.mil/lattice/struk/a_f.html
แม้ว่ามันจะไม่รวมอยู่ใน20110801041529
ภาพรวม มันจะนำคุณไปสู่สิ่งที่ถูกต้องโดยอัตโนมัติ :
http://web.archive.org/web/ 20110731225728 /http://cst-www.nrl.navy.mil/lattice/struk/a_f.html
ดังนั้นตัวกรอง privoxy อีกตัวที่จะเขียนสแน็ปช็อตทั้งหมดให้เป็นสแน็ปช็อตล่าสุด
FILTER: rewritewaybackstamp rewrite Wayback snapshot date
s|/([0-9]{14})(.{0,3})/|/20120713212803$2/|g
อย่างมีประสิทธิภาพทุก ๆ 14- หมายเลข - ตัวเลขในสิ่งที่/.../
ถูกแทนที่ด้วย20120713212803
(ปรับให้เป็นภาพรวมล่าสุดของเว็บไซต์ที่คุณต้องการ) นี่อาจเป็นปัญหาหากมีตัวเลขดังกล่าวในโครงสร้างเว็บไซต์ที่ไม่ได้มาจากเครื่อง Wayback ไม่สมบูรณ์แบบ แต่ใช้ได้สำหรับไซต์Strukturtypen
สิ่งที่ดีเกี่ยวนั่นคือ wget ละเว้นสถานที่ใหม่มันถูกเปลี่ยนเส้นทางไปและบันทึกไฟล์ - ใน exampe ข้างต้น - web.archive.org/web/20110801041529/http://cst-www.nrl.navy.mil/lattice/struk/a_f.html
เป็น
ใช้ wget เพื่อสะท้อนไซต์ที่เก็บถาวร
ดังนั้นในที่สุดเมื่อuser.filter
เปิดใช้ฟิลเตอร์ privoxy (กำหนดไว้ใน) user.action
ผ่านทาง
{ +filter{removewaybacktoolbar} +filter{blocknonparentpages} +filter{rewritewaybackstamp} }
web.archive.org
คุณสามารถใช้ wget ได้ตามปกติ อย่าลืมบอกให้คนอื่นใช้พร็อกซี่ด้วย:
export http_proxy="localhost:8118"
wget -r -p -k -e robots=off http://web.archive.org/web/20120713212803/http://cst-www.nrl.navy.mil/lattice/index.html
ฉันใช้ตัวเลือกเหล่านี้ แต่-m
ควรใช้งานได้เช่นกัน คุณจะจบลงด้วยโฟลเดอร์
20120713212803
20120713212803cs_
20120713212803im_
20120713212803js_
ในขณะที่เครื่อง Wayback แยกรูปภาพ ( im_
), สไตล์ชีท ( cs_
) ฯลฯ ฉันรวมทุกอย่างเข้าด้วยกันและใช้เวทมนต์บางอย่างเพื่อแทนที่ลิงก์ที่น่าเกลียด ( ../../../../20120713212803js_/http:/cst-www.nrl.navy.mil/lattice
) ตามลำดับ แต่นี่ไม่จำเป็นจริงๆ
20110722080716
แน็ปช็อต-np
ตัวเลือกของ wget จะไม่ช่วย