Bir HTML5 uygulamasının nasıl çalıştığını ve webkit tarayıcıları (chrome, Safari) içindeki sayfayı kaydetme girişimlerinin bazılarını içerdiğine, ancak tüm cache.manifest kaynaklarına bakmaya çalışıyorum. Cache.manifest dosyasını ayrıştıracak ve tüm kaynakları (görüntüler, komut dosyaları, css) indirecek bir kitaplık veya kod kümesi var mı? Bir HTML5 cache.manifest dosyasında listelenen tüm artifaktları indirmenin en iyi yolu?
(orijinal kod> cevaplamak için ... çaylak hata taşındı <.)
7
A
cevap
0
Başlangıçta (hayır Newbie stackoverflow afiş HİÇ bunu yapar;) ... sorunun bir parçası olarak bu yayınlanmıştır
beri yankılanan cevaplar yoktu. Al bakalım: (Bu piton koduna benim ilk bıçak
bunu yapmak için aşağıdaki piton komut ile gelip başardı, ama herhangi bir giriş = mutluluk duyacağız), daha iyi bir yolu olabilir böylece)
import os
import urllib2
import urllib
cmServerURL = 'http://<serverURL>:<port>/<path-to-cache.manifest>'
# download file code taken from stackoverflow
# http://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python
def loadURL(url, dirToSave):
file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(dirToSave, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)
file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
break
file_size_dl += len(buffer)
f.write(buffer)
status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100./file_size)
status = status + chr(8)*(len(status)+1)
print status,
f.close()
# download the cache.manifest file
# since this request doesn't include the Conent-Length header we will use a different api =P
urllib.urlretrieve (cmServerURL+ 'cache.manifest', './cache.manifest')
# open the cache.manifest and go through line-by-line checking for the existance of files
f = open('cache.manifest', 'r')
for line in f:
filepath = line.split('/')
if len(filepath) > 1:
fileName = line.strip()
# if the file doesn't exist, lets download it
if not os.path.exists(fileName):
print 'NOT FOUND: ' + line
dirName = os.path.dirname(fileName)
print 'checking dirctory: ' + dirName
if not os.path.exists(dirName):
os.makedirs(dirName)
else:
print 'directory exists'
print 'downloading file: ' + cmServerURL + line,
loadURL (cmServerURL+fileName, fileName)
İlgili konular
- 1. Dosyayı sunucudan indirmenin en iyi yolu nedir
- 2. Bir dosyayı indirmenin en kolay yolu?
- 3. Kompakt Çerçevede geliştirirken tüm belleğinizi bulmanın en iyi yolu nedir?
- 4. Jmeter'da en iyi yolu bulmanın en iyi yolu nedir?
- 5. catalina.bat dosyasında yığın boyutunu artırmanın en iyi yolu
- 6. Tüm tabloları bir sql 2005 veritabanından kaldırmanın en iyi yolu
- 7. en iyi yolu?
- 8. en iyi yolu
- 9. en iyi yolu
- 10. Tam geçmişini GitHub'dan indirmenin bir yolu var mı?
- 11. Mediafire linklerini indirmenin herhangi bir yolu var mı?
- 12. Pandalar veri çerçevesindeki tüm değerleri toplamlamanın en iyi yolu nedir?
- 13. Tüm alt görünümleri kendinizden kaldırmanın en iyi yolu nedir?
- 14. Phalcon ORM'deki tüm sütunlarda arama yapmanın en iyi yolu?
- 15. Tüm html belgesine olay dinleyicisinin eklenmesinin en iyi yolu
- 16. Spree'yi özelleştirmenin en iyi yolu?
- 17. HTML5 için tüm Javascript API'leri için iyi bir kaynak var
- 18. Linq'e katılmanın en iyi yolu
- 19. Bir "araç turu" sağlamanın en iyi yolu
- 20. Bir animasyonu sürmenin en iyi yolu nedir?
- 21. Javascript'te bir int ayrıştırmanın en iyi yolu
- 22. MongoEngine'de bir DictField'ı sorgulamanın en iyi yolu
- 23. Java JDK'yı indirmenin güvenli bir yolu var mı?
- 24. Bir XML dosyasında XPath varlığı için en iyi yol testi?
- 25. Tüm satırlar ve tüm sütunlarla bir datagridview yazdırmanın en iyi yolu?
- 26. Kendi GPG/PGP parolanızı güçlendirmek için en iyi yolu kullanmanın en iyi yolu nedir?
- 27. Yönergeler arasındaki iletişim kurmanın en iyi yolu
- 28. Hata iletilerini işlemenin en iyi yolu
- 29. Anonim Profili Geçmenin En İyi Yolu
- 30. Ünite testinin en iyi yolu Koleksiyon?
Sorunuzda "soru sorma" eksikliği var, ancak kod bazı parçaların basitleştirilmesine rağmen Python üzerinde çalışıyor. Ayrıca urlgrabber denilen kütüphaneler ve dosya kaydetme sürecini kolaylaştıracak talepler var. –
Geri bildiriminiz için teşekkür ederiz. Mikko Daha fazla geliştirme için bahsettiğiniz kütüphaneleri kontrol edeceğim. Temel olarak, bir cache.manifest dosyasındaki kaynakların listesini indirmek için bir kütüphane bilmiyorsunuz. Maalesef, bu yayının en önemli anahtar kelimesi, henüz bir anahtar kelime olarak eklenmeyen "cache.manifest" dir. 1500 puanı alamıyorum. Bu soru, HTML5 "cache.manifest" ile ilgilenen kişiler yerine "python" etiketlerini izleyen kişiler tarafından görüntülenecektir. – rockhowse
Önbellek manifest'in ayrıştırılması ve karşıdan yüklenmesi sadece 50 satırlık Python kodunun neden olduğunu anlamıyorum Neden herkes bu amaçla bir niş kütüphanesi oluşturmalıdır :) –