0x00
Spletni pajek (znan tudi kot spletni pajek, spletni bot, v skupnosti FOAF pogosteje imenovan spletni lovec) je program ali skripta, ki samodejno pridobiva informacije o svetovnem spletu v skladu z določenimi pravili. Druga manj pogosto uporabljena imena vključujejo mravlje, avtomatske indekse, simulatorje ali črve.
0x01
Preprosto povedano, pajki pridobivajo podatke po svojih pravilih, analizirajo zajete podatke in nato pridobijo uporabne podatke zase.
0x02
Optimizacijo spletnih pajkov lahko razdelimo na dve fazi:
1: Optimizacija pri strganju podatkov;
2: Optimizacija obdelave rezultatov prijema;
Danes govorimo samo o optimizaciji v procesu strganja!
0x03
Povzel sem nekaj točk o optimizaciji v procesu pajkanja:
1: Lahko se optimizira glede na fizični naslov, na primer: ciljni strežnik virov je Tencent Cloud gostitelj v Šanghaju, poskušamo izbrati strežnik v isti regiji, torej strežnik v regiji Šanghaj, ne izberemo strežnika v Pekingu, Qingdau in drugih regijah, ampak poskušamo izbrati strežnik v isti računalniški sobi IDC. Vemo, da je ta vir spletna stran strežnik Tencent Cloud, poskušamo pajk postaviti na strežnik Tencent Cloud, ne na Alibaba Cloud strežnik!
2: Izberite stabilno in hitro omrežje, na splošno imajo pajkalniki visoke zahteve glede kakovosti omrežja, poskušajte ne uporabljati domačega omrežja, izberite podjetniško omrežje ali kupite strežnik za zajem podatkov.
3: Izberite učinkovitejši jezik za pajke, slišal sem, da je Python boljši za pajke, vendar ga nisem uporabljal, in ga bom preizkusil kasneje, danes, večinoma ga razložim v .net jeziku.
0x04
Za stvari, kot je hiter nakup, so zahteve za hitrost pridobivanja podatkov visoke, lahko jih opišemo kot vprašanje časa, zgodaj za pridobitev podatkov, povečanje možnosti za pridobivanje podatkov, naslednje je, da sem napisal demo s konzolo, preizkus pridobivanja podatkov s te spletne strani, kot je prikazano na spodnji sliki:
(Krajši kot je čas, hitreje je)
Zgornja razvrstitev podatkov:1: Nativno optimizirana koda, 2: Izvorna koda, 3: Paketi vtičnikov tretjih oseb
0x05
Zakaj vtičniki tretjih oseb (paketi) potrebujejo največ časa? Vtičniki tretjih oseb so pravzaprav veliko število enkapsulacij izvorne kode, veliko logičnih presoj, ki so razmeroma vsestranski, kar lahko vodi do počasnega premikanja po besedilu.
Tukaj je izvorna koda:
Izvorna koda je le nekaj vrstic zgoraj.Povprečni čas je še vedno 184 milisekund,Enostavnejša kot je koda, težje jo je optimiziratiAli menite, da je mogoče zgornjo kodo optimizirati za povprečni čas 99 milisekund?Razlika v hitrosti se podvoji!
0x06
Če ciljni strežnik virov podpira gzip kompresijo, bo ob dostopu do spletne strani in brskalnik zahteva spletno stran v glavi zahteve naslednje parametre:
Parametri glave odziva:
Uvod v "sprejemanje-kodiranje": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Preprosto povedano:
Stranka pravi:Podpiram algoritem za stiskanje "gzip, deflate, sdch, br", pri vračanju podatkov lahko uporabiš karkoli želiš.
Natakar je povedal:Podpiram algoritem stiskanja gzip, zato bom uporabil algoritem gzip za stiskanje podatkov do vas
Stranka pravi:V redu, potem bom prejete podatke dešifriral z gzip algoritmom
gzip algoritem, ki lahko stisne prenesene podatke in močno zmanjša preneseno vsebino, zato se izboljša učinkovitost zahtev, zato je optimizirana koda naslednja:
Čeprav je to majhna podrobnost, lahko rečemo, da je učinkovitost podvojena! To je enakovredno podatkom, ki ste jih zbrali v dveh dneh, zdaj pa jih je mogoče zbrati v enem dnevu, ta članek pa je namenjen prijateljem, ki se učijo crawlinga.
Opomba: algoritem stiskanja gzip nima nobene zveze s programskim jezikom!
Na koncu priložite izvorno kodo:
Turisti, če želite videti skrito vsebino te objave, prosim Odgovoriti
|