Skip to content

A Python library for simplified HTTP requests, featuring rate limiting, browser-like headers, configurable cache, and automatic retries. Built on the official `requests` library for reliability.

License

Notifications You must be signed in to change notification settings

hazel-noack/easy-requests

Repository files navigation

Easy-Requests

publishing workflow

A Python library for simplified HTTP requests, featuring rate limiting, browser-like headers, and automatic retries. Built on the official requests library for reliability.

Features

  • Save responses to cache
  • Use any session (e.g., bypass Cloudflare using cloudscraper)
  • Configurable wait between requests without thread blocking
  • Automatic retries for failed requests
pip install easy-requests

Usage

Basic Usage

from easy_requests import Connection, init_cache
 
init_cache(".cache")

connection = Connection()
# to generate headers that mimic the browser
connection.generate_headers()

response = connection.get("https://example.com")

Using with Cloudscraper

from easy_requests import Connection
import cloudscraper

connection = Connection(cloudscraper.create_scraper())
response = connection.get("https://example.com")

Configuring cache

This won't use caching without you configuring it.

You can configure the default cache either with environment variables or using init_cache. The env keys are EASY_REQUESTS_CACHE_DIR and EASY_REQUESTS_CACHE_EXPIRES (in days).

from easy_requests import init_cache

init_cache(".cache")

Alternatively you can pass arguments into Connection(...) and the request function:

  • cache_enabled: Optional[bool]
  • cache_directory: Optional[str]
  • cache_expires_after: Optional[timedelta]
from easy_requests import Connection

Connection(
    cache_enabled = True
)

If you pass in cache_enabled=True it will raise a Value error if no cache directory was found.

About

A Python library for simplified HTTP requests, featuring rate limiting, browser-like headers, configurable cache, and automatic retries. Built on the official `requests` library for reliability.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages