0x00
Webový crawler (také známý jako webový pavouk, webový bot, v komunitě FOAF běžněji nazývaný web chaser) je program nebo skript, který automaticky stahuje informace o World Wide Web podle určitých pravidel. Mezi méně často používané názvy patří mravenci, auto-indexy, simulátory nebo červi.
0x01
Jednoduše řečeno, crawlery sbírají data podle svých vlastních pravidel, analyzují zachycená data a poté získávají užitečná data pro sebe.
0x02
Optimalizace pro webové crawlery se dá rozdělit do dvou fází:
1: Optimalizovat při scrapování dat;
2: Optimalizovat zpracování výsledků uchopení;
Dnes mluvíme jen o optimalizaci procesu scrapingu!
0x03
Shrnul jsem několik bodů o optimalizaci v procesu procházení:
1: Lze optimalizovat na fyzické adrese, například: cílový zdrojový server je Tencent Cloud host v Šanghaji, snažíme se vybrat server ve stejném regionu, tedy server v regionu Šanghaje, nevybíráme server v Pekingu, Qingdao a dalších regionech, ale také se snažíme vybrat server ve stejné počítačové místnosti IDC, víme, že tento zdrojový web je server Tencent Cloud, snažíme se umístit crawler na server Tencent Cloud, ne na Alibaba Cloud server!
2: Vyberte stabilní a rychlou síť, obecně mají crawlery vysoké požadavky na kvalitu sítě, snažte se nepoužívat domácí síť, vyberte firemní síť nebo si kupte server pro sběr dat.
3: Vyberte efektivnější crawler, slyšel jsem, že python je lepší v crawlerech, ale nepoužil jsem ho a dnes to otestuji, hlavně to vysvětlím v .net jazyce.
0x04
U věcí jako rychlé nákupy jsou požadavky na rychlost stahování vysoké, lze to popsat jako otázku času, brzy získat data, zvýšit šanci na získání, následuje test sbírání dat z této webové stránky, jak je znázorněno na obrázku níže:
(Čím kratší čas, tím rychlejší)
Výše uvedené pořadí dat:1: Nativně optimalizovaný kód, 2: Nativní kód, 3: Externí plug-in DLL (balíčky)
0x05
Proč třetí strany (balíčky) trvají nejdéle? Plug-iny třetích stran jsou ve skutečnosti velké množství zapouzdření nativního kódu, velké množství logických úsudků a jsou relativně univerzální, což může vést k pomalému prohrabávání kódu.
Tady je nativní kód:
Nativní kód je jen o pár řádků výše.Průměrná doba je stále 184 milisekund,Čím jednodušší kód, tím těžší je optimalizovatMyslíte si, jak lze výše uvedený kód optimalizovat tak, aby dosáhl průměrného času 99 milisekund?Rozdíl v rychlosti se zdvojnásobil!
0x06
Pokud cílový resource server podporuje kompresi gzip, při přístupu na web a prohlížeč si web vyžádá, bude hlavička požadavku obsahovat následující parametry:
Parametry hlavičky odpovědi:
Úvod do "Accept-Encoding": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Laicky řečeno:
Klient říká:Podporuji kompresní algoritmus "gzip, deflate, sdch, br", můžete použít cokoli při vracení dat.
Server uvedl:Podporuji kompresní algoritmus gzip, takže použiji algoritmus gzip k komprimaci dat k vám
Klient říká:Dobře, pak dešifruji přijatá data pomocí algoritmu gzip
algoritmus gzip, který dokáže komprimovat přenesená data a výrazně snížit přenášený obsah, takže efektivita požadavků se zlepší, optimalizovaný kód je následující:
Ačkoliv je to malý detail, lze říci, že účinnost je dvojnásobná! Je to ekvivalent dat, která jste nasbírali za dva dny, a nyní je lze získat za 1 den, a tento článek je věnován přátelům, kteří se učí crawling.
Poznámka: Algoritmus komprese gzip nemá s programovacím jazykem nic společného!
Nakonec přiložte zdrojový kód:
Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosím Odpověď
|