0x00
Web-crawler (tunnetaan myös nimillä web spider, web bot, yleisemmin FOAF-yhteisössä web chaser) on ohjelma tai skripti, joka automaattisesti kerää tietoa World Wide Webistä tiettyjen sääntöjen mukaisesti. Muita harvemmin käytettyjä nimiä ovat muurahaiset, automaattiindeksit, simulaattorit tai madot.
0x01
Yksinkertaisesti sanottuna crawlerit keräävät dataa omien sääntöjensä mukaan, analysoivat tallennettua dataa ja hankkivat sitten hyödyllistä dataa itselleen.
0x02
Verkkoindeksin optimointi voidaan jakaa kahteen vaiheeseen:
1: Optimoi datan kaapimisessa;
2: Optimoi ymmärtämistulosten käsittely;
Tänään puhumme vain optimoinnista kaapimisprosessissa!
0x03
Olen tiivistänyt muutamia kohtia optimoinnista indeksointiprosessissa:
1: Se voidaan optimoida fyysiselle osoitteelle, esimerkiksi: kohderesurssipalvelin on Tencent Cloud -isäntä Shanghaissa, yritämme valita palvelimen samalta alueelta, eli palvelimen Shanghain alueelta, emme valitse palvelinta Pekingistä, Qingdaosta tai muista alueista, mutta yritämme myös valita palvelimen samasta IDC-tietokonehuoneesta, tiedämme, että tämä resurssisivusto on Tencent Cloudin palvelin, yritämme laittaa crawlerin Tencent Cloud -palvelimelle, emme Alibaba Cloud -palvelimelle!
2: Valitse vakaa ja nopea verkko, yleensä crawlerilla on korkeat vaatimukset verkon laadulle, yritä olla käyttämättä kotiverkkoa, valitse yrityksen verkko tai osta palvelin datan keräämiseen.
3: Valitse tehokkaampi crawlerikieli, olen kuullut että python on parempi crawlereissa, mutta en ole itse käyttänyt sitä, ja testaan sitä myöhemmin, tänään selitän sen pääasiassa .net-kielellä.
0x04
Rush-ostamisen kaltaisissa asioissa nappausnopeuden vaatimukset ovat korkeat, ja se on ajan kysymys: aikaisin saada data, lisätä nappauksen mahdollisuutta, seuraava on demon, jossa kirjoitin demon, testin tämän sivuston datan keräämisestä, kuten alla olevassa kuvassa näkyy:
(Mitä lyhyempi aika, sitä nopeampi se on)
Yllä oleva dataranking:1: Natiivisti optimoitu koodi, 2: Natiivikoodi, 3: Kolmannen osapuolen plug-in dll:t (paketit)
0x05
Miksi kolmannen osapuolen lisäosat (paketit) kestävät eniten aikaa? Kolmannen osapuolen plug-init ovat itse asiassa suuri määrä natiivikoodin kapselointia, suuri määrä loogisia arvioita ja suhteellisen monipuolisia, mikä voi johtaa hitaaseen crawling-nopeuteen.
Tässä on natiivikoodi:
Natiivikoodi on vain muutaman rivin yläpuolella.Keskimääräinen aika on edelleen 184 millisekuntia,Mitä yksinkertaisempi koodi, sitä vaikeampaa sen optimointi onUskotko, miten yllä mainittu koodi voidaan optimoida saavuttamaan keskimääräinen 99 millisekunnin aika?Nopeusero on kaksinkertainen!
0x06
Jos kohderesurssipalvelin tukee gzip-pakkausta, kun pääsemme sivustolle ja selain pyytää sivustoa, pyynnön otsikolla on seuraavat parametrit:
Vastausotsikon parametrit:
Johdanto "Accept-Encodingiin": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Yksinkertaisesti sanottuna:
Asiakas sanoo:Kannatan "gzip, deflate, sdch, br" -pakkausalgoritmia, voit käyttää mitä haluat palauttaessasi dataa.
Palvelin sanoi:Sattumalta tuen gzip-pakkausalgoritmia, joten käytän gzip-algoritmia pakkatakseni datan sinulle
Asiakas sanoo:Okei, puran vastaanotetut tiedot gzip-algoritmilla
gzip-algoritmi, joka voi pakata lähetetyn datan ja vähentää lähetettyä sisältöä merkittävästi, jolloin pyyntöjen tehokkuus paranee, joten optimoitu koodi on seuraava:
Vaikka se on pieni yksityiskohta, tehokkuus voidaan sanoa kaksinkertaistuneeksi! Se vastaa kahdessa päivässä keräämääsi dataa, ja nyt se voidaan kerätä yhdessä päivässä, ja tämä artikkeli on omistettu ystäville, jotka oppivat crawlingin.
Huomautus: gzip-pakkausalgoritmilla ei ole mitään tekemistä ohjelmointikielen kanssa!
Lopuksi liitä lähdekoodi:
Turistit, jos haluatte nähdä tämän postauksen piilotetun sisällön, olkaa hyvä Vastaus
|