2 unstable releases

0.2.0 May 3, 2024
0.1.0 Jan 10, 2024

#493 in Asynchronous

MIT license

31KB
429 lines

Proxy Scraper

License Downloads Version Docs

The Proxy Scraper is a Rust command-line tool and library that allows users to scrape proxy information from URLs.

Features

  • Scraping: Fetch and scrape proxy information from a specified URL.
  • Proxy Types: Currently supports multiple proxy types, including MTProxy, Shadowsocks, VMess, VLess, Trojan, Hysteria, and TUIC, with extensibility for additional types.
  • Asynchronous: Utilizes asynchronous programming using the Tokio runtime for improved performance.

Supported Proxies

  • MTProxy: A specific type of proxy.
  • Shadowsocks: A proxy protocol designed to provide encryption and security.
  • VMess: A protocol for encrypted communications.
  • VLess: A protocol similar to VMess but with reduced overhead.
  • Trojan: A protocol that disguises traffic as HTTPS.
  • Hysteria: A protocol with high-speed data transfer capabilities.
  • TUIC: A protocol for encrypted communications.

Library Usage

The Proxy Scraper is also available as a library for Rust projects. It provides a set of modules and functions for scraping proxy information programmatically.

// Example usage of the Proxy Scraper library
use proxy_scraper::*;

fn main() {
    let source = "<TEXT INCLUDING PROXY LINKS>";
    
    let proxy_list = mtproxy::MTProxy::scrape(source);

    println!("{:#?}", proxy_list);
}

Usage

Installation

  1. Ensure you have Rust and Cargo installed. If not, follow the instructions at Rust Installation.

  2. Clone the repository:

    git clone https://github.com/zolagonano/proxy-scraper.git
    
  3. Navigate to the project directory:

    cd proxy-scraper
    
  4. Build the project:

    cargo build --release
    

Command-line Usage

Run the built executable with the desired parameters:

./target/release/proxy-scraper --source <PROXY_SOURCE_URL> --proxy_type <PROXY_TYPE>
  • <PROXY_SOURCE_URL>: The URL containing proxy information.
  • <PROXY_TYPE>: The type of proxy to scrape (default: "mtproxy").

Example

./target/release/proxy-scraper --source https://example.com/proxies --proxy_type mtproxy

Configuration

The tool uses argh for command-line argument parsing. The available options are:

  • --source: Specifies the URL source for proxy information.
  • --proxy_type: Specifies the type of proxy to scrape (default: "mtproxy").

Dependencies

  • reqwest: HTTP client for making requests.
  • tokio: Asynchronous runtime for Rust.
  • argh: A simple argument parsing library.

Building from Source

To build the project from source, follow these steps:

  1. Clone the repository:

    git clone https://github.com/your_username/proxy-scraper.git
    
  2. Navigate to the project directory:

    cd proxy-scraper
    
  3. Build the project:

    cargo build --release
    

Support

If you find my works helpful and would like to support me, consider making a donation. Your contributions will help ensure the ongoing maintenance and improvement of these projects.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

~8–24MB
~317K SLoC