Skip to main content

a Rust-based web scraping library for Python

Project description

scraprr

scraprr is a library for scraping HTML from the web.


Functions

  • Fetch HTML from an HTTP or HTTPS site
  • Extract specific tags (<ul>, <li>, <div>, etc.)
  • Requests with headers, cookies, and query strings

Examples

use scraprr::{fetch_url, fetch_url_with_options, RequestOptions, extract_tag};

fn main() {
    // Basic GET request
    let html = fetch_url("http://localhost:8000/demo.html");
    println!("Raw HTML:\n{}", html);

    // Extract the first <ul> tag and its contents
    let tag = extract_tag(&html, "ul");
    println!("First <ul> tag:\n{}", tag);

    // Custom headers, cookies, and query parameters
    let opts = RequestOptions {
        headers: Some({
            let mut h = std::collections::HashMap::new();
            h.insert("User-Agent".into(), "scrapr/0.1".into());
            h
        }),
        cookies: Some({
            let mut c = std::collections::HashMap::new();
            c.insert("sessionid".into(), "abc123".into());
            c
        }),
        query: Some({
            let mut q = std::collections::HashMap::new();
            q.insert("q".into(), "Rust programming".into());
            q
        }),
    };

    let response = fetch_url_with_options("https://www.wikipedia.org", opts);
    println!("Wikipedia page HTML:\n{}", response);
}
import scraprr

opts = scraprr.RequestOptions(
    headers={"User-Agent": "XYZ/1.0"},
    cookies={"sessionid": "abc123"},
    query={"q": "Shrek"}
)

text = scraprr.fetch_url_with_options("https://html.duckduckgo.com/html", opts)

print(text)

Installation:

MacOS arm64

curl -sSL https://raw.githubusercontent.com/dariush-g/scraprr/main/install_scraprr.sh | bash

Linux

pip install scraprr

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

scraprr-0.1.14.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scraprr-0.1.14-cp313-cp313-manylinux_2_34_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

File details

Details for the file scraprr-0.1.14.tar.gz.

File metadata

  • Download URL: scraprr-0.1.14.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.1

File hashes

Hashes for scraprr-0.1.14.tar.gz
Algorithm Hash digest
SHA256 66c8104f8c7aea01ab77fc39b987d0a2597afbeb7ad028d7af5949fee4fbe7a0
MD5 766187d1337652ab2b45c01463c1ca44
BLAKE2b-256 4f1dc3bc62e450e9e64445ba096742500ed895353f9e43a534ec50f792e4de29

See more details on using hashes here.

File details

Details for the file scraprr-0.1.14-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for scraprr-0.1.14-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7bb9c1c5e434d371ecb3cbf1e1f8850256f14e3051e813f6c1d1b2ac059dea8d
MD5 2c055361fe1e3000cbdea8bd16e52cf3
BLAKE2b-256 5f109bc64df6bcb456ec39b8f121efd79d5d3b51ed73ae8d64aedb141ae068ad

See more details on using hashes here.

Supported by

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