Çalışmalarım için web sitelerini kazıyorum ve bunları gziplenmiş web arşivlerine ("warc.gz" uzantısıyla) yazdım. Python 2.7.11 ve warc 0.2.1 kütüphanesini kullanıyorum.Python, "warc.gz" dosyasını tamamen okuyamaz.
Dosyaların çoğunda bunları warc-library ile tamamen okuyamadığımı fark ettim. Örneğin, warc.gz dosyasının 517 kaydı varsa, bunlardan sadece 200'ü okuyabilirim.
Bazı araştırmalardan sonra, bu sorunun yalnızca gzipli dosyalar ile meydana geldiğini öğrendim. "Warc" uzantılı dosyalar bu soruna sahip değil.
Bunun için bazı çözümlerin (https://github.com/internetarchive/warc/issues/21) yanı sıra bunun için bir çözüm bulunmadığını öğrendim.
Python 2.7.11'de "gzip" dosyasında bir hata olabileceğini tahmin ediyorum. Birisi bununla ilgili deneyime sahip ve bu sorun hakkında neler yapılabileceğini biliyor mu?
Şimdiden teşekkürler!
Örnek:
böyle yeni warc.gz dosyaları oluşturmak:
import warc
warc_path = "\\some_path\file_name.warc.gz"
warc_file = warc.open(warc_path, "wb")
kullandığım kayıtları yazmak için:
Bu mükemmel "warc.gz" yaratır Dosyalar. Onlarla problem yok. "\ R \ n" dahil olmak üzere tüm doğru. Ama bu dosyaları okuduğumda sorun başlıyor.
dosyalarını okumak için kullanıyorum:
warc_file = warc.open(warc_path, "rb")
döngü için kayıtlar arasında kullandığım:
for record in warc_file:
...
sorun değil tüm kayıtları bu "warc.gz" dosyası için döngü sırasında bulunan olmasıdır Hepsi "warc" dosyaları için bulunurken. Her iki dosya türüyle çalışmak da warc-kütüphanesinde ele alınmaktadır.
ekleyiniz bir [MCVE] (http://stackoverflow.com/help/mcve) , minimal, eksiksiz ve doğrulanabilir bir örnek. Github'daki bağlantılı sorun bile oldukça belirsiz. –
Ilja, warc kütüphanesi çok küçük, örnek vermek için çok fazla kod yok. Bir warc.gz dosyası oluşturmak için 'self.warc_file = warc.open (self.warc_path," wb ")' kullanın. Kayıt yazmak için 'record = warc.WARCRecord (yük = value, headers = headers)' komutunu kullanıyorum. Kayıtları okumak için 'self.warc_file = warc.open (self.warc_path, rb") 've' self.warc_file: 'kayıtlarını kullanıyorum. Sorun, tüm kayıtların bulunmamasıdır. –
Örnek bir warc.gz dosyası ekleyebilirim Burada nasıl ekleyeceğimi öğrenirim ... –