การหนีจากสตริงการสืบค้นด้วย wget --mirror


15

ฉันใช้wget --mirror --html-extension --convert-linksเพื่อสะท้อนเว็บไซต์ post.php?id=#.htmlแต่ผมจบลงด้วยจำนวนมากชื่อไฟล์ในรูปแบบ เมื่อฉันพยายามดูสิ่งเหล่านี้ในเบราว์เซอร์มันล้มเหลวเพราะเบราว์เซอร์จะไม่สนใจสตริงข้อความค้นหาเมื่อโหลดไฟล์ มีวิธีใดที่จะแทนที่?ตัวละครในชื่อไฟล์ด้วยอย่างอื่นได้บ้าง?


คำตอบของการ--restrict-file-names=windowsทำงานอย่างถูกต้อง ใช้ร่วมกับแฟล็ก--convert-linksและ--adjust-extension/ -E(ชื่อเดิม--html-extensionซึ่งยังใช้งานได้ แต่ถูกคัดค้าน) จะสร้างมิเรอร์ที่ทำงานตามที่คาดไว้

wget  --mirror --adjust-extension --convert-links --restrict-file-names=windows http://www.example

คำตอบ:


16

ดู--restrict-file-namesตัวเลือก แม้ว่าจะไม่ได้มีจุดประสงค์เพื่อจุดประสงค์นี้โดยเฉพาะ แต่--restrict-file-names=windowsอาจช่วยคุณได้

--restrict ไฟล์ชื่อ = โหมด

เปลี่ยนอักขระที่พบใน URL ระยะไกลที่ต้องหลีกเลี่ยงในระหว่างการสร้างชื่อไฟล์ท้องถิ่น [ ... ]

เมื่อได้รับ "windows" Wget จะหนีอักขระ \, |, /,:,?, ", *, <,> และอักขระควบคุมในช่วง 0--31 และ 128--159 นอกจากนี้ , Wget ในโหมด Windows ใช้ + แทน: เพื่อแยกโฮสต์และพอร์ตในชื่อไฟล์ในเครื่องและใช้ @ แทนเพื่อแยกส่วนแบบสอบถามของชื่อไฟล์ออกจากส่วนที่เหลือดังนั้น URL ที่จะถูกบันทึกเป็น www xemacs.org:4300/search.pl?input=blah ในโหมด Unix จะถูกบันทึกเป็น www.xemacs.org+4300/search.pl@input=blah ในโหมด Windows


2

เบราว์เซอร์ของคุณจะดูดีถ้าคุณใช้ URL เช่น

file:///tmp/example.com/post.php%3Fid=1.html

แทน

file:///tmp/example.com/post.php?id=1.html

หมายเหตุ: หากคุณมีปัญหากับลิงก์ภายในจากไฟล์ที่ดาวน์โหลดอาจเป็นเพราะคุณยกเลิก wget ก่อนที่จะทำการดาวน์โหลดเสร็จสิ้น เนื่องจากคุณระบุ --convert-links และ --html-extension (ใช้ได้เฉพาะเมื่อได้รับมา) wget จะแก้ไขลิงก์ให้ใช้% 3F แทน? อย่างไรก็ตามมันทำในตอนท้ายหลังจากดาวน์โหลดเสร็จแล้ว หากถูกขัดจังหวะมันจะไม่แก้ไขลิงก์ใด ๆ และคุณจะถูกทิ้งไว้ในสถานการณ์นี้ แน่นอนคุณสามารถเขียนสคริปต์เพื่อให้ผ่านและแก้ไขลิงก์ได้เสมอ แต่ ...


สิ่งนี้ค่อนข้างไม่ถูกต้อง wget โดยไม่มีการขัดจังหวะสำหรับ URL เช่นhttp://site.com/article.cgi?25นี้จะได้รับการบันทึกตามที่article.cgi?25.htmlดูในส่วน 2.7 ที่gnu.org/software/wget/manual/wget.html#HTTP-Options
Tzury Bar Yochay

-2

wget ไม่มีตัวเลือกในการแก้ไขชื่อที่บันทึกไว้ สิ่งที่คุณอาจต้องทำคือสร้างสคริปต์เพื่อให้ผ่านและแทนที่? ด้วย _ หรือบางอย่างที่คล้ายกัน เพียงคนเดียวไม่สามารถทำสิ่งนี้ได้

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