ดาวน์โหลดสำเนาเว็บเพจที่ใช้งานได้ [ปิด]


211

ฉันต้องการดาวน์โหลดสำเนาของเว็บเพจในท้องถิ่นและรับ css, รูปภาพ, javascript และอื่น ๆ ทั้งหมด

ในการอภิปรายก่อนหน้านี้ (เช่นที่นี่และที่นี่ซึ่งทั้งสองมีความเก่าแก่กว่าสองปี) สองข้อเสนอแนะที่จะใส่ไปข้างหน้าโดยทั่วไป: wget -pและHTTrack อย่างไรก็ตามคำแนะนำเหล่านี้ล้มเหลว ฉันซาบซึ้งมากที่ได้รับความช่วยเหลือในการใช้เครื่องมือเหล่านี้เพื่อทำงานให้สำเร็จ ทางเลือกก็น่ารักเช่นกัน


ตัวเลือกที่ 1: wget -p

wget -pประสบความสำเร็จในการดาวน์โหลดข้อกำหนดเบื้องต้นทั้งหมดของหน้าเว็บ (css, รูปภาพ, js) อย่างไรก็ตามเมื่อฉันโหลดสำเนาโลคัลในเว็บเบราว์เซอร์หน้าไม่สามารถโหลดสิ่งที่จำเป็นต้องมีได้เนื่องจากเส้นทางไปยังสิ่งที่จำเป็นต้องมีเหล่านั้นยังไม่ได้รับการแก้ไขจากเวอร์ชันบนเว็บ

ตัวอย่างเช่น:

  • ใน html ของหน้า<link rel="stylesheet href="https://stackoverflow.com/stylesheets/foo.css" />จะต้องได้รับการแก้ไขให้ชี้ไปที่เส้นทางสัมพัทธ์ใหม่ของfoo.css
  • ในไฟล์ css background-image: url(/images/bar.png)จะต้องมีการปรับเช่นเดียวกัน

มีวิธีการแก้ไขwget -pเพื่อให้เส้นทางถูกต้องหรือไม่


ตัวเลือก 2: httrack

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


ตัวเลือก 3: เครื่องมืออื่นหรือไม่

บางคนแนะนำเครื่องมือการชำระเงิน แต่ฉันไม่อยากจะเชื่อเลยว่านั่นจะไม่มีทางออกฟรี


19
หากคำตอบไม่ได้ผลให้ลอง: wget -E -H -k -K -p http://example.com- ใช้ได้เฉพาะกับฉันเท่านั้น เครดิต: superuser.com/a/136335/94039
its_me

นอกจากนี้ยังมีซอฟแวร์ที่จะทำว่าTeleport Pro
pbies

3
wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
davidcondrey

ซ้ำเป็นไปได้ของหน้าเว็บที่ดาวน์โหลดและการอ้างอิงรวมถึงภาพ CSS
jww

คำตอบ:


262

wget สามารถทำสิ่งที่คุณขอได้ ลองทำสิ่งต่อไปนี้:

wget -p -k http://www.example.com/

-pคุณจะได้รับทุกองค์ประกอบที่จำเป็นในการดูเว็บไซต์ให้ถูกต้อง (CSS, ภาพ, ฯลฯ ) -kจะเปลี่ยนการเชื่อมโยงทั้งหมด (ที่จะรวมเหล่านั้นสำหรับ CSS และภาพ) เพื่อให้คุณสามารถดูหน้าครับเท่าที่มันปรากฏออนไลน์

จากเอกสาร Wget:

‘-k’
‘--convert-links’
After the download is complete, convert the links in the document to make them
suitable for local viewing. This affects not only the visible hyperlinks, but
any part of the document that links to external content, such as embedded images,
links to style sheets, hyperlinks to non-html content, etc.

Each link will be changed in one of the two ways:

    The links to files that have been downloaded by Wget will be changed to refer
    to the file they point to as a relative link.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif, also
    downloaded, then the link in doc.html will be modified to point to
    ‘../bar/img.gif’. This kind of transformation works reliably for arbitrary
    combinations of directories.

    The links to files that have not been downloaded by Wget will be changed to
    include host name and absolute path of the location they point to.

    Example: if the downloaded file /foo/doc.html links to /bar/img.gif (or to
    ../bar/img.gif), then the link in doc.html will be modified to point to
    http://hostname/bar/img.gif. 

Because of this, local browsing works reliably: if a linked file was downloaded,
the link will refer to its local name; if it was not downloaded, the link will
refer to its full Internet address rather than presenting a broken link. The fact
that the former links are converted to relative links ensures that you can move
the downloaded hierarchy to another directory.

Note that only at the end of the download can Wget know which links have been
downloaded. Because of that, the work done by ‘-k’ will be performed at the end
of all the downloads. 

2
ฉันลองสิ่งนี้ แต่ลิงก์ภายในอย่างใดเช่นindex.html#link-to-element-on-same-pageหยุดทำงาน
rhand


12
เซิร์ฟเวอร์บางตัวจะตอบสนองด้วยรหัส 403 ถ้าคุณใช้ wget โดยไม่ต้องมีตัวแทนผู้ใช้คุณสามารถเพิ่ม-U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4'
nikoskip

45
หากคุณพบว่าคุณยังไม่มีภาพ ฯลฯ ลองเพิ่มสิ่งนี้: -e robots = off ..... อ่านและเคารพ robots.txt จริง ๆ - นี่ทำให้ฉันยากที่จะเข้าใจว่าทำไมไม่มีอะไร ทำงาน!
John Hunt

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