Bir web sayfasının çalışan bir yerel kopyasını indirin [kapalı]


211

Bir web sayfasının yerel bir kopyasını indirmek ve tüm css, resimler, javascript, vb.

Önceki tartışmalarda (örneğin her ikisi de iki yaşından büyük olan burada ve burada ), genellikle iki öneri ileri sürülmektedir : wget -pve httrack . Ancak, bu önerilerin her ikisi de başarısız olur. Görevi yerine getirmek için bu araçlardan birini kullanma konusunda çok minnettar olurum; alternatifleri de güzel.


Seçenek 1: wget -p

wget -pWeb sayfasının tüm ön koşullarını (css, resimler, js) başarıyla indirir. Ancak, yerel kopyayı bir web tarayıcısına yüklediğimde, bu önkoşullara giden yollar web'deki sürümden değiştirilmediğinden sayfa önkoşulları yükleyemiyor.

Örneğin:

  • Sayfanın html'sinde, <link rel="stylesheet href="https://stackoverflow.com/stylesheets/foo.css" /> yeni göreli yolunu gösterecek şekilde düzeltilmesi gerekir.foo.css
  • Css dosyasında, background-image: url(/images/bar.png)benzer şekilde ayarlanması gerekecektir.

wget -pYolların doğru olması için değiştirmenin bir yolu var mı ?


2.Seçenek : httrack

httracktüm web sitelerini yansıtmak için harika bir araç gibi görünüyor, ancak tek bir sayfanın yerel bir kopyasını oluşturmak için nasıl kullanılacağı açık değil. Httrack forumlarında bu konuyla ilgili (örneğin burada ) çok fazla tartışma var, ancak hiç kimsenin kurşun geçirmez bir çözümü yok gibi görünüyor.


Seçenek 3: Başka bir araç?

Bazı insanlar ücretli araçlar önerdi, ancak orada ücretsiz bir çözüm olmadığına inanamıyorum.


19
Cevap işe yaramazsa, şunu deneyin: wget -E -H -k -K -p http://example.com- sadece bu benim için çalıştı. Kredi bilgileri: superuser.com/a/136335/94039
its_me

Bunu yapacak bir yazılım da var, Teleport Pro .
pbies

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

Yanıtlar:


262

wget istediğini yapabilir. Aşağıdakileri deneyin:

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

-pDoğru (css, resim, vs.) sitesini görüntülemek için size gerekli tüm unsurları alacak. -kTüm bağlantıları değişecek çevrimiçi göründü gibi sayfa çevrimdışı görüntülemek için izin (CSS & resimlerin ait olduğu içerecek şekilde).

Wget belgelerinden:

‘-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
Bunu denedim, ama bir şekilde index.html#link-to-element-on-same-pageçalışmayı durdurma gibi iç bağlantılar .
rhand


12
Bir Kullanıcı Aracısı olmadan wget kullanırsanız bazı sunucular 403 koduyla yanıt verir, ekleyebilirsiniz-U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4'
nikoskip

45
Hala eksik görüntüler vs buluyorsanız .. o zaman bunu eklemeyi deneyin: -e robots = off ..... wget aslında robots.txt okur ve saygı duyar - bu gerçekten neden hiçbir şey anlamaya zorlaştı çalıştı!
John Hunt

24
yabancı ana bilgisayarlardan kaynak almak için nasıl-H, --span-hosts
davidhq
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.