Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 585936|Vastaus: 70

[Konsoliohjelma] .net/c# Polku web-crawlerin optimointiin

  [Kopioi linkki]
Julkaistu 19.4.2018 14.21.02 | | | |
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

Pistetilanne

Osallistujien määrä2MB+1 myötävaikuttaa+2 Romahdus syy
conntfs + 1 Erittäin voimakas!
Pieni aloittelija, joka rakastaa oppia + 1 + 1 Tue omistajaa hyvän postauksen julkaisemisessa, ja minäkin julkaisen hyvän postauksen!

Katso kaikki arviot





Edellinen:Kansainvälisten käytäntöjen uusien tulokkaiden raportteja julkaistaan
Seuraava:.net/c# Seuraavan sukupolven CAPTCHA-tunnistusjärjestelmä 2.3 -opas
Julkaistu 31.12.2019 10.48.25 |
Xiaobai ei voinut loukkaantua. Onko olemassa ohjelmistoja, jotka muistuttavat big datan yhden klikkauksen keräämistä?
Julkaistu 10.6.2019 14.11.09 |
Xiaobai ei voinut loukkaantua. Onko olemassa ohjelmistoja, jotka muistuttavat big datan yhden klikkauksen keräämistä?
Julkaistu 15.10.2019 10.29.57 |
GANJUETINGHAOWANDE KANN
Julkaistu 20.4.2018 12.35.21 |
Kiitos, että jaoit
Julkaistu 25.4.2018 11.33.55 |
Kokoelma, ehkä hyödyllinen.
Julkaistu 17.5.2018 18.02.21 |
Road to Web Crawler -optimointikokoelma
Julkaistu 18.5.2018 16.10.57 |
ooooooo
Julkaistu 18.7.2018 14.43.07 |
Katso, toimiiko se
Julkaistu 20.7.2018 10.09.50 |
DADASDSADSAD
Julkaistu 13.8.2018 13.06.50 |
Tutustu tähän lähdekoodiin
Julkaistu 20.8.2018 14.00.52 |

Kiitos, että jaoit kokemuksesi
Julkaistu 30.8.2018 11.42.26 |
srkskrskrskrskrskr
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com