wget özyinelemeli indirme, ama tüm bağlantıları takip etmek istemiyorum


10

Bir web sitesini wget kullanarak yansıtmaya çalışıyorum, ancak çok fazla dosya indirmek istemiyorum, bu yüzden --rejecttüm dosyaları kaydetmemek için wget seçeneğini kullanıyorum . Ancak wget yine de tüm dosyaları indirecek ve daha sonra reddetme seçeneğimle eşleşirse dosyayı kaldıracaktır.

Bazı kabuk joker karakterleri ile eşleşiyorsa belirli bağlantıları takip etmemeyi söylemenin bir yolu var mı? Eğer wget bunu yapamazsa, bunu yapabilen başka bir ortak linux komutu var mı?


3
Tüm komutunuzu gönderin lütfen. Sorun gidermeyi çok daha kolay hale getirir.
Joseph Kern

Yanıtlar:


9

IMO, daha esnek ve sezgisel içerme / hariç tutma mantığı olan HTTrack'ı da deneyebilirsiniz . Böyle bir şey ...

httrack "https://example.com" -O ExampleMirrorDirectory \
"-*" \
"+https://example.com/images/*" \
"-*.swf"

Kurallar sırayla uygulanır ve önceki kuralları geçersiz kılar ...

  1. Her şeyi hariç tut
  2. Ancak https://example.com/images/ * ekleyin
  3. Ancak swf ile biten herhangi bir şeyi hariç tutun

Güncellenmiş URL'lerle CSS, resim vb. İndirir mi?
brandizzi

6

Wget'te bunun mümkün olmadığı anlaşılıyor


1

'Man wget' ın --reject bölümünün altında:

"Bir joker karakterden herhangi biri, *,?, [Veya], bir acclist veya reflist öğesinde görünüyorsa, ona bir sonek yerine desen olarak davranılacağını unutmayın."

Bunu yapıyorsanız, kullandığınız kalıplara ve neyle eşleşmesi gerektiğini düşündüğünüze dair örnekler vermek isteyebilirsiniz ve bu uyuşmaz. Eşleştiğini söyledin, ama emin misin?

Ayrıca, bu listeyi tırnak içine aldığınızdan emin olun, böylece kabuk argümanları uyandırmadan önce bu joker karakterleri genişletmez.

Sistem sürüm 1.12 yoksa bile, manuel ait Dosyalar bölümünün Türleri okumak burada . Değişiklik günlüğüne göre, koruyucu bazı uyarılar ekledi:

* NEWS: Added documentation change re: --no-parents, and various
caveats on accept/reject lists behavior. Rearranged some items in
order of priority.

--Reject seçenekleri tırnak içinde. Dosya indirildikten sonra wget dosyayı kaldırdığından doğru dosyaların eşleştiğini görebiliyorum. Sadece ilk etapta dosyayı indirmeyi durdurmak istiyorum
Rory

Bu htm (l) dosyaları mı? El kitabına göre, bunlar ne olursa olsun indirilir.
Kyle Brandt

Evet. reddetmek istediğim dosyalar HTML dosyaları. Ne olursa olsun indirildiklerini biliyorum. Bunu önlemenin bir yolu var mı?
Rory

1

Özyineleme düzeyini seçenekle kısıtlayabilirsiniz, -l NUMBERbu yardımcı olur (belirli bir normal ifade modelini izlemez).

"2" düzeyi index.html, alt siteleri / resimleri / vb. Ve alt sitedeki bağlantıları indirir.


hayır bu durumda yardımcı olmaz
Rory

1

wget'i nasıl kullanıyorsun? bu şekilde kullanmaya çalışın:

wget -r --reject=gif,jpg,swf http://norc.aut.ac.ir/

bu komut gif ve jpg ve swf dosyalarını yok sayar.


Rory McCann'ın reddetmek istediği dosyalar HTML dosyalarıdır, ancak diğer HTML dosyalarını saklamak ister, bu nedenle bu sözdizimi sorusu için geçerli değildir.
Royce Williams

1

Geçici çözümlerden biri wget'i bir proxy sunucu üzerinden çalıştırmak olacaktır. Proxy'nizi belirli kalıplara izin vermeyecek şekilde ayarlayın. Bu, wget'in onları ilk etapta indirmesini engelleyecektir.

wget, -R modeliyle eşleşen bir dosyayı indirir ve kaldırır. yalnızca dosya adlarının uzantılarını veya parçalarını değil, kalıpları da eşleştirebilir. Ancak, wget'in önce indirilmesini ve daha sonra silinmesini durdurmaz.

httrack bazı güzel özelliklere sahip ama benim deneyimime göre bir "dosyayı" kaydetme yolu biraz tuhaf olabilir, örneğin httrack index.asp ile karşılaşırsa? Type = BASIC & PAGEID = 2234234
kaydedebilir, ancak onu sorgu parçaları
, örneğin% h% p /% n,% [TİPİ: @type = ::]%. [pageId: pageId = ::]% t
@, questionmark için bir tutucudur daha sonra dosyalarını yeniden, ya da bir soru işaretinden kaçabilir mi? Sorun şu ki,.% t URI'nızın sonuna '.html' içermeyen bir '.html' ekleyecek ve eğer onu çıkarırsanız, httrack indirmelerinin görüntülerinde bir dosya uzantısı bulunmayacaktır.

Wget IMHO'yu kullanmak daha iyi

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.