0x00
Web tarayıcısı (web örümceği, web bot olarak da bilinir, FOAF topluluğunda daha yaygın olarak web kovalayıcı olarak adlandırılır) belirli kurallara göre Dünya Çapında Web hakkında bilgileri otomatik olarak karayan bir program veya betiktir. Daha az kullanılan diğer isimler arasında karıncalar, otomatik indeksler, simülatörler veya solucanlar bulunur.
0x01
Basitçe söylemek gerekirse, tarayıcılar kendi kurallarına göre veri toplar, yakalanan verileri analiz eder ve ardından kendileri için faydalı veriler elde ederler.
0x02
Web tarayıcısı optimizasyonu iki aşamaya ayrılabilir:
1: Veri kazırken optimize edin;
2: Kavrama sonuçlarının işlenmesini optimize etmek;
Bugün sadece kazıma sürecindeki optimizasyondan bahsediyoruz!
0x03
Tarama sürecindeki optimizasyonla ilgili birkaç noktayı özetledim:
1: Fiziksel adres üzerinde optimize edilebilir, örneğin: hedef kaynak sunucusu Şanghay'daki Tencent Cloud sunucusu, aynı bölgedeki sunucuyu seçmeye çalışıyoruz, yani Şanghay bölgesindeki sunucuyu seçmeye çalışıyoruz, Pekin, Qingdao ve diğer bölgelerdeki sunucuyu seçmeyeceğiz, aynı IDC bilgisayar odasında da sunucuyu seçmeye çalışıyoruz, bu kaynak web sitesinin Tencent Cloud sunucusu olduğunu biliyoruz, tarayıcıyı Alibaba Cloud sunucusuna değil, Tencent Cloud sunucusuna koymaya çalışıyoruz!
2: Stabil ve hızlı bir ağ seçin, genellikle tarayıcılar ağ kalitesi için yüksek gereksinimlere sahiptir, ev ağını kullanmamaya çalışın, şirket ağını seçin veya veri yakalamak için bir sunucu satın alın.
3: Daha verimli bir tarayıcı dili seçin, Python'un tarayıcılarda daha iyi olduğunu duydum ama kullanmadım, bugün daha sonra test edeceğim, çoğunlukla .net dilinde açıklıyorum.
0x04
Acele satın alma gibi şeyler için, yakalama hızı gereksinimleri yüksek, zaman meselesi olarak tanımlanabilir, veriyi erken almak, yakalama şansını artırmak daha da var, aşağıda konsolla bir demo yazdım, aşağıdaki şekilde gösterildiği gibi, bu web sitesinin verilerini yakalama testi:
(Süre ne kadar kısa, o kadar hızlıdır)
Yukarıdaki veri sıralaması:1: Yerel olarak optimize edilmiş kod, 2: Yerel kod, 3: Üçüncü parti eklenti dll'ler (paketler)
0x05
Üçüncü parti eklentiler (paketler) neden en uzun süreyi alıyor? Üçüncü taraf eklentileri aslında çok sayıda yerel kodun kapsüllenmesi, çok sayıda mantıksal yargı ve nispeten çok yönlüdür; bu da yavaş tarama hızına yol açabilir.
İşte yerel kod:
Yerel kod sadece birkaç satır yukarıda.Ortalama süre hâlâ 184 milisaniyedir,Kod ne kadar basitse, optimize etmek o kadar zor olurYukarıdaki kodun ortalama 99 milisaniye süreye ulaşacak şekilde nasıl optimize edilebileceğini düşünüyor musunuz?Hız farkı iki katına çıktı!
0x06
Hedef kaynak sunucusu gzip sıkıştırmasını destekliyorsa, web sitesine eriştiğimizde ve tarayıcı web sitesini talep ettiğinde, istek başlığı aşağıdaki parametrelere sahip olacaktır:
Yanıt Başlığı Parametreleri:
"Kabul Kodlama"ya Giriş: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Sade bir dilde:
Müşteri şöyle diyor:"gzip, deflate, sdch, br" sıkıştırma algoritmasını destekliyorum, veri döndürerken istediğiniz her şeyi kullanabilirsiniz.
Sunucu şöyle dedi:Gzip sıkıştırma algoritmasını destekliyorum, bu yüzden verileri size sıkıştırmak için gzip algoritmasını kullanacağım
Müşteri şöyle diyor:Tamam, o zaman alınan verileri gzip algoritmasıyla çözeceğim
GZIP algoritması, iletilen veriyi sıkıştırıp iletilen içeriği büyük ölçüde azaltabilen, böylece istek verimliliği artırılır ve optimize edilmiş kod şu şekildedir:
Küçük bir detay olsa da, verimliliğin iki katına çıktığı söylenebilir! Bu, iki günde topladığınız verilere eşdeğer ve şimdi 1 günde toplanabiliyor; bu makale tarama öğrenen arkadaşlara adanmıştır.
Not: gzip sıkıştırma algoritmasının programlama dili ile hiçbir ilgisi yoktur!
Son olarak, kaynak kodunu ekleyin:
Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfen Yanıt
|