Verkkosivujen kaavinta ja botit · Oppitunti

User-agentien ja otsakkeiden kierrättäminen

Toteuttakaa user-agentien ja HTTP-otsakkeiden dynaaminen kierrättäminen aidon selainliikenteen jäljittelemiseksi ja havaitsemisen välttämiseksi.

Oppitunti 1/411 vaihetta

User-agentien ja otsakkeiden kierrättäminen on ilmainen Verkkosivujen kaavinta ja botit-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Verkkosivujen kaavinta ja botit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Verkkosivujen kaavinta ja botit-kurssilla on yhteensä 4 oppituntia.

Havaitsemisen välttäminen

Kun kaavitte verkkosivustoja, ne yrittävät usein selvittää, oletteko ihminen vai botti. Jos sivusto tulkitsee teidät botiksi, se saattaa estää pääsynne!

Yksi tavallinen tapa tunnistaa botit on tarkastella HTTP-otsakkeita. Nämä otsakkeet sisältävät tietoja pyynnöstänne.

HTTP-otsakkeiden ymmärtäminen

Aina kun selaimenne (tai komentosarja) lähettää pyynnön verkkosivustolle, se lähettää HTTP-otsakkeita. Voitte ajatella niitä pyyntöön liitettyinä metatietoina.

  • User-Agent: Tunnistaa selaimenne ja käyttöjärjestelmänne.
  • Accept: Ilmaisee, minkä tyyppistä sisältöä haluatte vastaanottaa.
  • Referer: Aiempi sivu, jolla olitte.
  • Accept-Language: Ensisijainen kielenne.

Digitaalinen sormenjälkenne

User-Agent-otsake on erittäin tärkeä. Se kertoo verkkopalvelimelle, millainen asiakas pyynnön lähettää.

Esimerkiksi "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" tunnistaa Windowsissa toimivan Chrome-selaimen.

Botit käyttävät usein yleistä User-Agent-arvoa tai eivät lähetä sitä lainkaan, mikä on selvä varoitusmerkki!

Epäilyttävien mallien tunnistaminen

Jos verkkosivusto havaitsee samasta IP-osoitteesta tulevan paljon pyyntöjä, joissa kaikissa käytetään täsmälleen samaa yleistä User-Agent-arvoa, botin tunnistaminen on helppoa.

Verkkopalvelimet voivat analysoida myös muita otsakkeita. Oikea selain lähettää monipuolisen joukon otsakkeita, kun taas yksinkertainen kaavintakomento saattaa lähettää niitä vain muutaman.

User-Agent-luettelon rakentaminen

Aitoja selaimia jäljitelläksenne tarvitsette monipuolisen kokoelman User-Agent-merkkijonoja. Niitä voi löytää verkosta!

  • Hakekaa ilmauksella "list of user agents".
  • Poimikaa niitä selainten lähettämistä pyynnöistä.
  • Käyttäkää kirjastoja, jotka ylläpitävät tällaisia luetteloita.

Tavoitelkaa eri selainten (Chrome, Firefox, Safari) ja käyttöjärjestelmien yhdistelmää.

Ensimmäinen mukautettu otsakkeenne

Pythonissa voitte asettaa pyynnöillenne mukautettuja otsakkeita helposti requests-kirjaston avulla. Aloitetaan yhdestä User-Agent-arvosta.

Kokeilkaa tämän esimerkin suorittamista:

import requests

url = "https://httpbin.org/headers"
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}

response = requests.get(url, headers=headers)
print(response.json()['headers']['User-Agent'])

Dynaaminen User-Agent-valinta

Jotta pyyntönne näyttäisivät luonnollisemmilta, User-Agent-arvoa kannattaa vaihtaa. Tämä tarkoittaa eri arvon valitsemista jokaiselle pyynnölle (tai muutaman pyynnön välein).

Voimme käyttää Pythonin random-moduulia User-Agent-arvon valitsemiseen luettelosta.

Kokeilkaa tämän esimerkin suorittamista:

import requests
import random

user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
]

url = "https://httpbin.org/headers"
random_ua = random.choice(user_agents)
headers = {"User-Agent": random_ua}

response = requests.get(url, headers=headers)
print(f"Used UA: {random_ua}")
print(response.json()['headers']['User-Agent'])

User-Agentia pidemmälle

Vaikka User-Agent on tärkeä, oikeat selaimet lähettävät monia muitakin otsakkeita. Muutaman lisäotsakkeen sisällyttäminen voi saada botin näyttämään vielä aidommalta.

  • Accept-Language: esimerkiksi en-US,en;q=0.9
  • Accept-Encoding: esimerkiksi gzip, deflate, br
  • Connection: esimerkiksi keep-alive

Voitte vaihtaa myös näitä tai valita yhdenmukaisen joukon, joka vastaa valitsemanne User-Agent-arvon selaintyyppiä.

Kattavampi otsakejoukko

Yhdistetään satunnainen User-Agent-valinta muutamaan muuhun yleiseen otsakkeeseen vankemman pyynnön luomiseksi.

Tämä vaikeuttaa kaavintabotin erottamista tavallisesta selaimesta.

Kokeilkaa tämän esimerkin suorittamista:

import requests
import random

user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1"
]

url = "https://httpbin.org/headers"
random_ua = random.choice(user_agents)

headers = {
    "User-Agent": random_ua,
    "Accept-Language": "en-US,en;q=0.9",
    "Accept-Encoding": "gzip, deflate, br",
    "Connection": "keep-alive",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
}

response = requests.get(url, headers=headers)
print(f"Used UA: {random_ua}")
print("Received headers:")
for key, value in response.json()['headers'].items():
    print(f"  {key}: {value}")

Otsakkeiden vaihtamisen tarkistus

Olette oppineet, miten User-Agent-arvoja ja muita HTTP-otsakkeita käytetään verkkopyynnöissä. Niiden vaihtaminen voi auttaa välttämään havaitsemisen.

Mitkä seuraavista ovat hyviä syitä vaihtaa User-Agent-arvoa ja muita HTTP-otsakkeita verkkokaavinnan aikana?

Kertaus: sulautuminen joukkoon

Hienoa työtä! Olette oppineet, kuinka tärkeitä HTTP-otsakkeet, erityisesti User-Agent, ovat verkkokaavinnassa.

  • Verkkosivustot käyttävät otsakkeita asiakkaiden tunnistamiseen.
  • Yhdenmukaiset ja yleiset otsakkeet paljastavat botit.
  • User-Agent-arvojen vaihtaminen ja muiden yleisten otsakkeiden lisääminen vaikeuttavat botin havaitsemista.

Tämä on tehokas tapa sulautua joukkoon. Seuraavaksi tutustumme välityspalvelinten hallintaan IP-osoitteen piilottamiseksi!

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”User-agentien ja otsakkeiden kierrättäminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Verkkosivujen kaavinta ja botit-oppimispolun 3 oppituntia, myös oppitunnin “User-agentien ja otsakkeiden kierrättäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Verkkosivujen kaavinta ja botit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”User-agentien ja otsakkeiden kierrättäminen”?

Toteuttakaa user-agentien ja HTTP-otsakkeiden dynaaminen kierrättäminen aidon selainliikenteen jäljittelemiseksi ja havaitsemisen välttämiseksi. Harjoittelet Verkkosivujen kaavinta ja botit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Verkkosivujen kaavinta ja botit-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Verkkosivujen kaavinta ja botit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”User-agentien ja otsakkeiden kierrättäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Verkkosivujen kaavinta ja botit-oppitunnilla?

Kyllä. Jokainen Verkkosivujen kaavinta ja botit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. User-agentien ja otsakkeiden kierrättäminen
  2. Välityspalvelinten hallinta ja IP-kierrätys
  3. CAPTCHA-ratkaisustrategiat
  4. Selaimen sormenjälkitunnistuksen kiertäminen
← Takaisin: Verkkosivujen kaavinta ja botit