What is python-requests?

python-requests is a bot in the HTTP clients and libraries category, operated by Python Software Foundation.

Bot name
python-requests
Operator
Python Software Foundation
Type
Bot
Respects robots.txt
No
robots.txt user agent
python-requests
Signs requests (Web Bot Auth)
No

About python-requests

python-requests is the default user agent of Requests, the most popular HTTP library for Python. Scripts, data pipelines and scrapers that do not set their own user agent send it.

HTTP clients are programming libraries and command line tools. Developers use them for scripts, integrations and scrapers. Real browsers never send these user agents, so treat them as automated traffic and block them on pages meant for people.

python-requests user agent

Anyone can copy a user agent string. Transfon Security also checks where each request comes from, so a request that claims to be a known crawler but comes from the wrong network is treated as a fake, not as the real crawler.

How to block python-requests in robots.txt

python-requests does not read robots.txt. The rules below record your policy, but they will not stop it. To actually block python-requests, use a WAF rule as shown in the next section.

Block python-requests from the whole site

User-agent: python-requests
Disallow: /

Block python-requests from some folders

User-agent: python-requests
Disallow: /private/
Disallow: /search

Allow python-requests only on some folders

User-agent: python-requests
Allow: /blog/
Disallow: /

Allow python-requests and block other crawlers

User-agent: python-requests
Allow: /

User-agent: *
Disallow: /

Things to know

  • Each host needs its own file. Rules on www.example.com do not apply to shop.example.com.
  • A crawler obeys only the most specific group that names it. Once you add a User-agent: python-requests group, python-requests ignores your User-agent: * rules, so repeat any that should still apply.
  • The user agent name is not case sensitive. We take python-requests from python-requests's user agent; check Python Software Foundation's own documentation if it publishes a different robots.txt name.
  • Crawlers cache robots.txt, so changes can take up to a day to apply. Disallow stops crawling but does not remove pages already collected or indexed.

Limits of robots.txt

  1. python-requests may not follow the rule. python-requests does not read robots.txt at all, so a rule for it has no effect.
  2. The user agent could be fake. robots.txt matches the name a request claims. Anyone can send python-requests's user agent, and a scraper using it is not bound by Python Software Foundation's robots.txt policy. Only checking the source network tells a real python-requests from a fake one.

Treat robots.txt as a statement of your policy, and enforce it where requests arrive.

Who should care about python-requests

Publishers

python-requests is a common tool for scrapers. Real readers never use it, so block it on article pages and keep it out of ad requests.

Transfon Security for publishers

Media buyers and advertisers

Traffic from python-requests on landing pages is automated. It inflates clicks and visits, so filter it from campaign data and raise it with the ad network.

Transfon Security for advertisers

E-commerce

Price scrapers, stock checkers and card testing scripts often run on python-requests. Block it on product, cart and checkout pages.

Transfon Security for e-commerce

SaaS and APIs

python-requests is normal for API clients but not for your web app. Allow it only on API routes that need a key, and rate limit it there.

Transfon Security for SaaS and APIs

Block python-requests with Transfon Security

python-requests ignores robots.txt, so it has to be stopped when the request arrives. Transfon Security shows python-requests by name in the Top Bots report, so you can see how often it visits and which pages it reads. Block or allow it with a User Agent rule, or slow it down with a rate limit decision rule.

Transfon Security

Control python-requests on your site

  • See every python-requests visit and the pages it reads
  • Spot bots that fake trusted crawler names
  • Block, allow or rate limit python-requests with one rule
  • Works with or without robots.txt support

Frequently asked questions

What is python-requests?

python-requests is a bot in the HTTP clients and libraries category, operated by Python Software Foundation. python-requests is the default user agent of Requests, the most popular HTTP library for Python. Scripts, data pipelines and scrapers that do not set their own user agent send it.

Does python-requests respect robots.txt?

No. python-requests does not follow robots.txt, so a Disallow rule will not stop it. Block it by user agent at your server, CDN or WAF instead.

How do I block python-requests?

Block requests whose user agent contains "python-requests" at your server, CDN or WAF, because python-requests does not read robots.txt. In Transfon Security that is one User Agent block rule.

Is robots.txt enough to block python-requests?

No. robots.txt is voluntary, so python-requests may not follow it, and anyone can send python-requests's user agent, so a fake python-requests ignores your rule. Enforce the rule where requests arrive, at your WAF, and check the source network.

Should I block python-requests?

HTTP clients are programming libraries and command line tools. Developers use them for scripts, integrations and scrapers. Real browsers never send these user agents, so treat them as automated traffic and block them on pages meant for people.

Related bots

All HTTP clients and libraries · Full bot directory

See Which Bots Visit Your Site

Transfon Security identifies every bot in this directory in your traffic reports, flags fake search crawlers, and lets you allow, block or rate limit each bot.

Stay ahead of the publishing curve

Privacy, security, monetization, and performance insights. A few emails a month, no spam.

By subscribing you agree to our privacy policy.