Web Scraping & Bots · Lezione

Rotazione di user agent e header

Implementi la rotazione dinamica dello user agent e degli header HTTP per simulare traffico proveniente da browser legittimi ed evitare il rilevamento.

Lezione 1 di 411 passaggi

Rotazione di user agent e header è una lezione Web Scraping & Bots gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web Scraping & Bots, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web Scraping & Bots include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Avoiding Detection

When you scrape websites, they often try to detect if you're a human or a bot. If they think you're a bot, they might block you!

One common way websites spot bots is by looking at your HTTP headers. These headers contain information about your request.

Understanding HTTP Headers

Every time your browser (or a script) makes a request to a website, it sends HTTP headers. Think of them as metadata attached to your request.

  • User-Agent: Identifies your browser/OS.
  • Accept: What content types you prefer.
  • Referer: The previous page you were on.
  • Accept-Language: Your preferred language.

Your Digital Fingerprint

The User-Agent header is super important. It tells the web server what kind of client is making the request.

For example, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" identifies a Chrome browser on Windows.

Bots often use a generic User-Agent, or none at all, which is a big red flag!

Spotting Suspicious Patterns

If a website sees many requests from the same IP address, all using the exact same, generic User-Agent, it's easy to tell it's a bot.

Web servers can also analyze other headers. A real browser sends a rich set of headers, while a simple scraping script might send very few.

Building a User-Agent List

To mimic real browsers, you need a collection of diverse User-Agent strings. You can find these online!

  • Search for "list of user agents".
  • Extract them from browser requests.
  • Use libraries that maintain such lists.

Aim for a mix of different browsers (Chrome, Firefox, Safari) and operating systems.

Your First Custom Header

In Python, using the requests library, you can easily set custom headers for your requests. Let's start with a single User-Agent.

Try running this example:

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'])

Dynamic User-Agent Selection

To make your requests appear more natural, you should rotate your User-Agent. This means picking a different one for each request (or after a few requests).

We can use Python's random module to select a User-Agent from a list.

Try running this example:

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'])

Beyond User-Agent

While User-Agent is crucial, real browsers send many other headers. Including a few more can make your bot look even more legitimate.

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

You can rotate these too, or pick a consistent set that matches your chosen User-Agent's browser type.

A More Complete Header Set

Let's combine random User-Agent selection with a few other common headers to create a more robust request.

This makes your scraping bot harder to distinguish from a regular browser.

Try running this example:

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}")

Header Rotation Check

You've learned how User-Agents and other HTTP headers are used in web requests. Rotating these can help avoid detection.

Which of the following are good reasons to rotate User-Agent and other HTTP headers when scraping?

Recap: Blending In

Great job! You've learned how critical HTTP headers, especially the User-Agent, are for web scraping.

  • Websites use headers to identify clients.
  • Consistent, generic headers flag bots.
  • Rotating User-Agents and adding other common headers makes your bot harder to detect.

This is a powerful technique for blending in. Next, we'll explore proxy management to hide your IP address!

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Rotazione di user agent e header» è gratuita?

Sì — il testo completo di «Rotazione di user agent e header» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web Scraping & Bots, passa a CoddyKit PRO. Il corso Web Scraping & Bots include 4 lezioni in totale.

Cosa imparerò in «Rotazione di user agent e header»?

Implementi la rotazione dinamica dello user agent e degli header HTTP per simulare traffico proveniente da browser legittimi ed evitare il rilevamento. Eserciti Web Scraping & Bots con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Web Scraping & Bots?

Non è richiesta alcuna esperienza precedente. Web Scraping & Bots su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Rotazione di user agent e header»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Web Scraping & Bots?

Sì. Ogni lezione Web Scraping & Bots include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Rotazione di user agent e header
  2. Gestione dei proxy e rotazione degli IP
  3. Strategie per la risoluzione dei CAPTCHA
  4. Eludere il fingerprinting del browser
← Torna a Web Scraping & Bots