Python'da Splash for Scrapy kullanarak birkaç dinamik web sitesi kazımayı deniyorum. Ancak, Splash'in tüm sayfaların belirli durumlarda yüklenmesini beklemediğini görüyorum. Bu sorunu çözmek için kaba bir güç yolu, büyük bir wait
zaman eklemek (örneğin aşağıdaki snippet'te 5 saniye) oldu. Bununla birlikte, bu son derece verimsizdir ve yine de belirli verileri yüklemekte başarısız olur (bazen içeriği yüklemek için 5 saniyeden uzun sürer). Bu istekler aracılığıyla verilebilecek bir öğe için bekle bir koşul var mı?Python'da bir SplashRequest gerçekleştirirken öğe için bekletme Scrapy
yield SplashRequest(
url,
self.parse,
args={'wait': 5},
'User-Agent':"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
}
)
çözümüne eklemek için, yukarıdaki komut dosyası çalışırken "endeks nil değerine girişimi" belirten Lua-hataları almak oldu. Sorun şudur:: (var)() 'sıçrama tarafından döndürülen 'nil' değerinde çalıştırılamaz: select ('. My-element')' elemanın henüz işlenmemiş olması. Yani sadece: '(var)() bölümü ile uğraşmak ve sıçrama değilken döngüleri kontrol etmek: seçmek ('. Benim elemanım ') benim için sorunu çözdüm. – NightFury13
İyi bir yakalama @ NightFury13! Örneği değiştiriyorum, böylece gelecekte bu cevaba gelen insanlar bu sorunu alamayacaklar. –