Skip to main content

A secure python library for fetching data with async, JS, and Tor support

Project description

PyGrab

PyGrab is a simple and performant Python library for making HTTP requests written in rust. It is designed to be fully interoperable with the popular requests package in Python.

References

Features

  • Simple: PyGrab's API is designed to be straightforward and easy to use. If you're familiar with requests, you'll feel right at home.
  • Flexible: Whether you need to make a simple GET request, post data to a server, or download a file, PyGrab has you covered.
  • Performant: With its Rust-powered backend, PyGrab offers enhanced performance for CPU-bound tasks, providing faster data decompression, thread handling, and network handling.
  • Asynchronous Support: PyGrab includes functions for making asynchronous HTTP requests, allowing you to efficiently grab data from multiple URLs at once.
  • JavaScript Support: PyGrab can render JavaScript-enabled websites, allowing you to grab data from dynamic web pages.
  • Interface with Tor Network: PyGrab includes built-in support for routing requests through the tor network.
  • Automated IP Rotation: PyGrab includes built-in support for rotating connections to the Tor Network.

Limitations

  • PyGrab is only supported on windows an linux currently.

Installation

You can install PyGrab using pip:

pip install pygrab

Usage

Here's a simple example of how to use PyGrab to make a GET request:

import pygrab

response = pygrab.get('http://example.com')
print(response.text)

In this example, response is syntactically similar to the requests.Response object. You can use it just like you would in requests.

Here's an example of how to use PyGrab to make asynchronous GET requests through the Tor Network:

import pygrab

pygrab.Tor.start_tor()

urls = ['http://example.com', 'http://example.org', 'http://example.net']
responses = pygrab.get_async(urls)

for response in responses.values():
    print(response.text)

In this example, responses is a dictionary of urls matched to their respective pygrab.HttpResponse objects. Each response corresponds to the URL at the same index in the urls list.

Contributing

Contributions are welcome. Please submit a pull request with any improvements.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygrab-3.0.5.tar.gz (5.3 MB view details)

Uploaded Source

Built Distribution

pygrab-3.0.5-py3-none-any.whl (5.3 MB view details)

Uploaded Python 3

File details

Details for the file pygrab-3.0.5.tar.gz.

File metadata

  • Download URL: pygrab-3.0.5.tar.gz
  • Upload date:
  • Size: 5.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for pygrab-3.0.5.tar.gz
Algorithm Hash digest
SHA256 fb1a6b1cf9376ccafb91f92e78397b478df33df1681f257897ae8df85110208d
MD5 ec16d89435f1337aa6d024a8970edbaa
BLAKE2b-256 5e2b52f314f5e90b0f3c396a4336079801c77b21da05e68814300a3524572194

See more details on using hashes here.

File details

Details for the file pygrab-3.0.5-py3-none-any.whl.

File metadata

  • Download URL: pygrab-3.0.5-py3-none-any.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for pygrab-3.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b22faf72762de2a92e8888a5059fdb694e646e5b71cd642d72807085dba2c65a
MD5 9d220c128255dc7e04c01ef9c98a6184
BLAKE2b-256 ffe812bbd5689e83a06e4b57aab84fa227d28be7b023780d857e2c0b536e2ca8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page