Herkese merhaba, uzun zamandır gizleniyorum, ilk kez poster yayınlıyorum.

Bir süredir başsız SF kullanıyorum ve bu benim ve ekibim için oyunun kurallarını değiştirdi. Oldukça büyük miktarda istemciyi yönetiyorum ve sunucuda taramaları barındırmak, izleme vb. için harikadır.

Tek sorun şu ki (şimdiye kadar) her yapılandırma dosyasını kullanıcı arayüzünde kurup sonra yüklemek zorunda kaldım. Geçen hafta, ecom istemcilerimiz için bir dizi özel çıkarım için farklı yapılandırma dosyaları oluşturmak için yaklaşık 20 dakika harcadım.

Bu yüzden, yapılandırma dosyalarını programlı olarak oluşturup oluşturamayacağımı görmek için yapılandırma dosyalarının tersine mühendisliğini denedim.

Extreme TLDR sürümü: hex dökümü, .seospiderconfig dosyalarının serileştirilmiş JAVA nesneleri olduğunu gösterdi. Bir grup JAVA ayrıştırıcısını denedim, SF’nin JRE ve JAR’larla birlikte bunu benim için yapabileceğini fark ettim. Mevcut bir yapılandırmayı şablon olarak yüklemek, ihtiyacım olan ayarları programlı olarak çevirmek ve ardından yeniden kaydetmek için SF’nin kendi gönderilen Java çalışma zamanını kullandım. Sonra etrafına bir python kütüphanesi sardım. Artık tarama başına yapılandırmalar (iş parçacıkları, kanonikler, robot davranışı, UA, sınırlar, dahil etme/hariç tutma) oluşturabilir ve bunları başsız olarak çalıştırabilirim.

(eğer birisi sürecin tamamını yazmak isterse bana bildirin)

Bununla çözdüğümüz birkaç sorun:

  • Sunucu Tarafı Yapılandırma Oluşturma: Söylediğim gibi, başsız modda çok fazla tarama yapıyorum. Bir yapılandırmayı yerel olarak manuel olarak kaydetmek ve sunucuya yüklemek (veya 50 statik yapılandırma dosyasından oluşan bir klasörü yönetmek) yerine, yalnızca yapılandırma oluşturmanın komut dosyasını yazabilirim. Yapılandırma nesnesini Python’da oluşturuyorum ve tarama komutu çalıştırılmadan hemen önce onu diske yazıyorum.
  • Yapılandırma Kayması: Bir taramanın neden geçen aya göre farklı göründüğünü görmek için iki yapılandırma dosyasının farkını belirleyebiliriz. (örneğin birinin limiti yanlışlıkla 500.000’den 5.000’e değiştirdiğini fark etmek). Bunu yapıyorsanız, bir jüpyter not defterinde deneyin (SFs UI imo’dan çok daha hızlı)
  • Şablon oluşturma: bizde bir "temel" Standart normal ifade çıkarımlarına (fiyat, SKU, vb.) sahip e-ticaret siteleri için yapılandırma. Biz sadece bu tabanı yüklüyoruz, istemci özelliklerini komut dosyasına ekliyoruz ve sunucudan çalıştırıyoruz. Tüm yapılandırmaları oluşturur ve taramaları başlatır.

Not: JAR’larını kullandığından, bunun çalışması için SF’nin yerel olarak (veya sunucuda) kurulu olması gerekir. (Onları yırtmak istedim ama 100mbs gibiler ve ayrıca dava edilmek istemiyorum)

Kütüphane Github // Pypi

Java yardımcı programı (komut dosyalarını dağıtmak yerine CLI’de çalıştırmak istiyorsanız): Github Deposu

Kesinlikle bir geliştirici değilim, bu yüzden test edin, bir şey bozulursa (ne zaman) ve onu yararlı bulursanız bana bildirin!