🎯 A customizable, anti-detection cloud browser powered by self-developed Chromium designed for web crawlers and AI Agents.👉Try Now
Back to Blog

How to Set User Agent in Python Requests: Step-by-Step Guide for Developers

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

22-Oct-2025

Introduction

Setting a custom User Agent in Python Requests is essential for controlling how your HTTP requests are perceived by web servers. This guide explains clear methods to set and manage User Agents. It helps developers avoid blocks, mimic browsers, and gather web data effectively.

Key Takeaways

  • Setting User Agent controls server perception.
  • Python Requests allow flexible header customization.
  • Using correct User Agent improves scraping success.
  • Tools like Scrapeless simplify User Agent management.

Why User Agents Matter

Conclusion: Servers rely on User Agents to determine client type.
User Agents inform servers if the request is from a browser, bot, or mobile device. Incorrect User Agents can trigger blocks or return simplified content.

Case Example:

  • Google often serves different HTML for bots and browsers.
  • Some e-commerce sites block requests without recognized User Agents.

Reference: Mozilla Developer Network (nofollow)

Basic Method to Set User Agent in Python Requests

Conclusion: Custom headers are the simplest way.
Python Requests allows passing a headers dictionary:

python Copy
import requests

url = 'https://example.com'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
response = requests.get(url, headers=headers)
print(response.status_code)

Key Points

  • Always specify User-Agent as a string.
  • Avoid empty or default headers for scraping.

Using Sessions for Persistent User Agents

Conclusion: Sessions maintain headers across requests.

python Copy
import requests

session = requests.Session()
session.headers.update({'User-Agent': 'CustomBrowser/1.0'})
response1 = session.get('https://example.com/page1')
response2 = session.get('https://example.com/page2')

Benefits:

  • Maintains the same User Agent automatically.
  • Reduces code repetition.

Rotating User Agents

Conclusion: Rotation avoids detection and blocking.

python Copy
import random
import requests

user_agents = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
    'Mozilla/5.0 (X11; Linux x86_64)'
]

headers = {'User-Agent': random.choice(user_agents)}
response = requests.get('https://example.com', headers=headers)

Comparison Summary:

Method Pros Cons
Single Header Simple, quick setup Less stealthy
Session Header Persistent, cleaner code Slightly longer code
Rotating User Agents Avoids blocks, stealthy Needs more management

Reference: Scrapy Documentation (nofollow)

Common Mistakes When Setting User Agents

Conclusion: Mistakes reduce scraping success.

  • Forgetting headers altogether.
  • Copying outdated browser strings.
  • Using identical User Agents for high-frequency requests.

Example:

Requests to modern sites with old IE User Agents often return minimal HTML.

Combining User Agents with Proxies

Conclusion: Proxies increase anonymity with User Agents.

  • Use residential proxies for higher success.
  • Combine rotating User Agents with proxy rotation.
python Copy
proxies = {
    'http': 'http://123.123.123.123:8080',
    'https': 'https://123.123.123.123:8080',
}
response = requests.get('https://example.com', headers=headers, proxies=proxies)

Reference: Bright Data Proxy Guide (nofollow)

Using Scrapeless for Advanced User Agent Management

Conclusion: Scrapeless automates User Agent and proxy handling.

  • Provides pre-configured, rotating User Agents.
  • Supports browser fingerprinting.
  • Reduces manual configuration errors.

Benefits:

  • Free trial available for testing.
  • Integrated analytics to check success rates.
  • Saves time for large-scale scraping.

Try Scrapeless free

Case Studies

  1. E-commerce scraping: Avoids 403 blocks by rotating User Agents.
  2. News aggregator: Maintains session headers for consistent HTML.
  3. SEO monitoring: Combines User Agent rotation and proxies for Google SERP tracking.

Conclusion

Setting and managing User Agents is crucial for reliable web requests in Python. Single headers, sessions, or rotations all serve different needs. For large-scale projects, tools like Scrapeless simplify automation, combining User Agents with proxy management for optimal results.

Start your free Scrapeless trial today to streamline your web scraping projects.

FAQ

Q1: Can I use any browser User Agent?
A1: Yes, but ensure it’s valid and updated to avoid minimal content.

Q2: Is rotating User Agents necessary?
A2: Recommended for high-frequency scraping to avoid detection.

Q3: Can Scrapeless handle User Agent rotation?
A3: Yes, it automates rotation and proxy management.

Q4: Are there legal risks?
A4: Always comply with the site's Terms of Service.

Q5: Can I use sessions with proxies?
A5: Yes, combining sessions with proxies improves stability.

At Scrapeless, we only access publicly available data while strictly complying with applicable laws, regulations, and website privacy policies. The content in this blog is for demonstration purposes only and does not involve any illegal or infringing activities. We make no guarantees and disclaim all liability for the use of information from this blog or third-party links. Before engaging in any scraping activities, consult your legal advisor and review the target website's terms of service or obtain the necessary permissions.

Most Popular Articles

Catalogue