Ilman välityspalvelin-IP:tä crawlerityö on vaikeaa, joten monien indeksointiinsinöörien täytyy ostaa tehokas ja vakaa proxy-IP. Korkealaatuisella välitys-IP:llä voitko rentoutua? Asiat eivät ole niin yksinkertaisia, ja on myös tarpeen optimoida järjestelmä, jakaa resurssit järkevästi, parantaa työn tehokkuutta ja suorittaa crawler-työ tehokkaammin, nopeammin ja vakaammin.
Vaihtoehto 1: Jokainen prosessi valitsee satunnaisesti IP-osoitteiden listan rajapinnan API:sta (esimerkiksi poimimalla 100 IP:tä kerrallaan) käydäkseen niitä läpi, ja kutsuu API:n hakemaan ne, jos se epäonnistuu, ja yleinen logiikka on seuraava:
1. Jokainen prosessi (tai säie) hakee satunnaisesti erän IP-osoitteita rajapinnasta ja yrittää hakea dataa IP-listalta silmukassa.
2. Jos pääsy onnistuu, jatka seuraavan nappaamista.
3. Jos se epäonnistuu (esim. aikakatkaisu, vahvistuskoodi jne.), ota erä IP-osoitteita rajapinnasta ja jatka yrittämistä.
Ratkaisun haittoja: Jokaisella IP:llä on vanhenemispäivä, jos 100 IP:tä poimitaan, kun käytetään 10. IP:tä, suurin osa jälkimmäisistä voi olla virheellisiä. Jos asetat HTTP-pyynnön, jonka yhteysaikakatkaisu on 3 sekuntia ja lukuaikakatkaisu 5 sekuntia, saatat hukata 3–8 sekuntia aikaa, ja ehkä nämä 3–8 sekuntia voidaan napata kymmeniä kertoja.
Vaihtoehto 2: Jokainen prosessi ottaa satunnaisen IP-osoitteen rajapinnan API:sta käytettäväksi, ja kutsuu API:n saadakseen IP:n, jos se epäonnistuu; yleinen logiikka on seuraava:
1. Jokainen prosessi (tai säie) hakee satunnaisesti IP-osoitteen rajapinnasta ja käyttää tätä IP-osoitetta resurssien käyttämiseen.
2. Jos pääsy onnistuu, jatka seuraavan nappaamista.
3. Jos se epäonnistuu (esim. aikakatkaisu, vahvistuskoodi jne.), valitse satunnaisesti IP-osoite rajapinnasta ja jatka yrittämistä.
Haitat: API-rajapintojen kutsuminen IP-osoitteiden saamiseksi on hyvin yleistä, mikä aiheuttaa suurta painetta välityspalvelimelle, heikentää API-rajapinnan vakautta ja voi olla rajoitettua niiden poimiminen. Tämä järjestelmä ei myöskään sovellu eikä sitä voi toteuttaa kestävästi ja vakaasti.
Vaihtoehto 3: Ensin poimitaan suuri määrä IP-osoitteita ja tuodaan ne paikalliseen tietokantaan, ja sitten otetaan IP tietokannasta, yleinen logiikka on seuraava:
1. Luo taulukko tietokantaan, kirjoita tuontiskripti, pyydä API minuutissa (konsultoi välityspalvelimen IP-palveluntarjoajan ehdotuksia) ja tuo IP-lista tietokantaan.
2. Kirjaa tietokantaan tuontiaika, IP, portti, vanhenemisaika, IP-saatavuustila ja muut kentät;
3. Kirjoita grab-skripti, rapuskripti lukee saatavilla olevan IP-osoitteen tietokannasta, ja jokainen prosessi saa IP-osoitteen tietokannasta käytettäväksi.
4. Suorita indeksointi, arvioi tulokset, käsittele evästeet jne., kunhan vahvistuskoodi tai virhe ilmenee, luovuta tämä IP-osoite ja vaihda uuteen IP-osoitteeseen.
Tämä ratkaisu välttää tehokkaasti välityspalvelinresurssien kulutuksen, jakaa välityspalvelin-IP:n käytön tehokkaasti, on tehokkaampi ja vakaampi sekä varmistaa crawler-työn kestävyyden ja vakauden. |