wget , -np
herhangi bir üst dizinden dosya almayı devre dışı bırakan bir seçeneğe sahiptir . Benzer ama biraz daha esnek bir şeye ihtiyacım var. Düşünmek:
www.foo.com/bar1/bar2/bar3/index.html
Ben her şeyi almak istiyorum ama bar2
(!) Göre daha yüksek değil (ağaç hiyerarşisinde ). Bu yüzden bar2
getirilmelidir ama olmamalıdır bar1
.
Wget'i daha seçici yapmanın bir yolu var mı?
Arka plan: Benzer bir mantıksal yapıya sahip bir web sitesini yansıtmaya çalışıyorum - başlangıç noktası, sonra yukarı, sonra aşağı. wget
Böyle bir düzen için daha uygun başka bir araç varsa , lütfen bana da bildirin.
Güncelleme
Veya olası derinliği belirtmek yerine, "bu URL veya bu URL ile eşleşmedikleri sürece ebeveyn yok" gibi bir şey olabilir.
Güncelleme 2
Sunucuda bazı yapılar var, değil mi? Bir ağaç olarak görselleştirebilirsiniz. Normalde "--no-parent" ile A noktasından başlayıp sadece aşağı inersiniz.
Benim dileğim, yukarı çıkma yeteneğidir - X düğümlerine çıkmasına izin verildiğini veya (% 100 eşdeğeri) B düğümüne (BA = X mesafesi) gitmesine izin verildiğini söyleyerek ifade edilir.
Her durumda, kullanıcılar tarafından tanımlandığı şekilde aşağı inmeye ilişkin kurallar kalır (örneğin, yalnızca Y düzeylerine iner).
Nasıl saklanır? Aslında asıl soru bu değil - wget
varsayılan olarak sunucu yapısını yeniden oluşturur, burada korkacak bir şey yoktur veya herhangi bir şeyi düzeltmeye gerek yoktur. Yani, 2 kelimeyle - her zamanki gibi.
Güncelleme 3
Aşağıdaki dizin yapısı - varsayalım ki her dizinde R - R.html ve içinde sadece bir dosya vardır. Birden fazla sayfanız olabileceğinden, bu elbette basitleştirilmiştir.
R
/ \
B G
/ \
C F
/ \
A D
/
E
A (A.html) başlangıç noktam, X = 2'dir (bu nedenle B almak istediğim en üst düzey düğümdür). Bu özel örnekte bu, R.html ve G.html dışındaki tüm sayfaların getirilmesi anlamına gelir. A.html'ye "başlangıç noktası" denir, çünkü B'den değil, ondan başlamak zorundayım .
Güncelleme 4
Adlandırma Güncelleme 3'te kullanılır.
wget SEÇENEKLERİ www.foo.com/B/C/A/A.html
Soru, tüm sayfaları B dizininden ve altından almak için seçenekler nelerdir (A.html'den başlamanız gerektiğini bilerek).
bar2
dizini ve tüm içeriğini istediğiniz . Değilse, lütfen açıklığa kavuşturun.
bar2
Getirilmek istiyorsun ama değilbar1
mi? Neredebar2
ikamet edecek? İstemediğiniz iki veya daha fazla dizin aynı adlı alt dizinlere sahipse, içerikleri birleştirilmelidir? Sadece tüm lanet siteyi almak ve sonra istediğiniz gibi budamak / hareket ettirmek neredeyse kesinlikle daha kolaydır.