0x00
Webový prehľadávač (známy aj ako webový pavúk, webbot, v komunite FOAF bežne nazývaný web chaser) je program alebo skript, ktorý automaticky sťahuje informácie o World Wide Web podľa určitých pravidiel. Medzi menej používané názvy patria mravce, auto-indexy, simulátory alebo červy.
0x01
Jednoducho povedané, crawlery získavajú dáta podľa vlastných pravidiel, analyzujú ich a potom získavajú užitočné údaje pre seba.
0x02
Optimalizáciu webových prehľadávačov možno rozdeliť na dve fázy:
1: Optimalizovať pri scrapingu dát;
2: Optimalizovať spracovanie výsledkov uchopenia;
Dnes sa bavíme len o optimalizácii v procese scrapingu!
0x03
Zhrnul som niekoľko bodov o optimalizácii v procese prehľadávania:
1: Môže byť optimalizovaný podľa fyzickej adresy, napríklad: cieľový zdrojový server je Tencent Cloud hostiteľ v Šanghaji, snažíme sa vybrať server v rovnakom regióne, teda server v regióne Šanghaj, nevyberáme server v Pekingu, Qingdao a iných regiónoch, ale tiež sa snažíme vybrať server v tej istej počítačovej miestnosti IDC, vieme, že táto zdrojová stránka je server Tencent Cloud, snažíme sa umiestniť crawler na Tencent Cloud server, nie na Alibaba Cloud server!
2: Vyberte stabilnú a rýchlu sieť, vo všeobecnosti majú crawlery vysoké požiadavky na kvalitu siete, snažte sa nepoužívať domácu sieť, vyberte si firemnú sieť alebo si kúpte server na zachytávanie dát.
3: Vyberte efektívnejší crawler jazyk, počul som, že python je lepší v crawleroch, ale nepoužil som ho a neskôr to otestujem, dnes to hlavne vysvetľujem v .net jazyku.
0x04
Pri veciach ako rýchly nákup sú požiadavky na rýchlosť chytania vysoké, dá sa to opísať ako otázka času, skoro, aby ste získali dáta, zvyšuje sa šanca na získanie, nasledujúca je, že som napísal demo s konzolou, test získavania dát z tejto webovej stránky, ako je znázornené na obrázku nižšie:
(Čím kratší čas, tým rýchlejší)
Vyššie uvedené poradie údajov:1: Natívne optimalizovaný kód, 2: Natívny kód, 3: Doplnkové DLL (balíčky) tretích strán
0x05
Prečo pluginy tretích strán (balíky) trvajú najdlhšie? Plug-iny tretích strán sú v skutočnosti veľké množstvo enkapsulácií natívneho kódu, veľké množstvo logických úsudkov a relatívne univerzálne, čo môže viesť k pomalému prehľadávaniu.
Tu je natívny kód:
Natívny kód je len o pár riadkov vyššie.Priemerný čas je stále 184 milisekúnd,Čím jednoduchší kód, tým ťažšie sa optimalizujeMyslíte si, že ako by sa vyššie uvedený kód dal optimalizovať na dosiahnutie priemerného času 99 milisekúnd?Rozdiel v rýchlosti sa zdvojnásobil!
0x06
Ak cieľový zdrojový server podporuje kompresiu gzip, keď pristupujeme na webovú stránku a prehliadač si ju vyžiada, hlavička požiadavky bude mať nasledujúce parametre:
Parametre hlavičky odpovede:
Úvod do "akceptačného kódovania": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Laicky povedané:
Klient hovorí:Podporujem kompresný algoritmus "gzip, deflate, sdch, br", pri vrátení dát môžete použiť čokoľvek.
Server uviedol:Podporujem kompresný algoritmus gzip, takže použijem algoritmus gzip na komprimovanie dát k vám
Klient hovorí:Dobre, potom dešifrujem prijaté dáta pomocou algoritmu gzip
algoritmus gzip, ktorý dokáže komprimovať prenášané dáta a výrazne znížiť prenášaný obsah, čím sa zlepší efektivita požiadaviek, takže optimalizovaný kód je nasledovný:
Aj keď je to malý detail, účinnosť sa dá povedať dvojnásobnou! Je to ekvivalent dát, ktoré ste nazbierali za dva dni, a teraz ich možno zozbierať za jeden deň, a tento článok je venovaný priateľom, ktorí sa učia crawling.
Poznámka: Algoritmus kompresie gzip nemá nič spoločné s programovacím jazykom!
Nakoniec pripojte zdrojový kód:
Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím. Odpoveď
|