#user-agent #python-module #up #date #world #real #fake

fake-useragent

up to date simple useragent faker with real world database, inspired by python module fake-useragent

4 releases

0.1.3 Feb 10, 2019
0.1.2 Feb 10, 2019
0.1.1 Feb 9, 2019
0.1.0 Feb 9, 2019

#1489 in Database interfaces

Download history 126/week @ 2024-03-13 106/week @ 2024-03-20 66/week @ 2024-03-27 57/week @ 2024-04-03 48/week @ 2024-04-10 37/week @ 2024-04-17 41/week @ 2024-04-24 127/week @ 2024-05-01 44/week @ 2024-05-08 53/week @ 2024-05-15 138/week @ 2024-05-22 79/week @ 2024-05-29 126/week @ 2024-06-05 85/week @ 2024-06-12 114/week @ 2024-06-19 144/week @ 2024-06-26

477 downloads per month
Used in 2 crates

MIT/Apache

19KB
314 lines

Intro

fake-useragent

Inspired by python module fake-useragent

Data from useragentstring.com (if failed to initialize, please make sure that you can access to this website)

Example

extern crate fake_useragent;

fn main() {
    // quick start
    {
        use fake_useragent::UserAgents;
        
        let user_agents = UserAgents::new();
        println!("{}", user_agents.random());
    }
    
    // from cache
    {
        use fake_useragent::UserAgents;
        
        let user_agents = UserAgents::from_cache("/tmp/user_agents");
        println!("{}", user_agents.random());
    }
    
    // customize
    {
        use fake_useragent::{Browser, UserAgentsBuilder};
        
        let user_agent = UserAgentsBuilder::new()
            .cache(false)                 // specify save to file or not, default true
            .dir("/tmp")                  // specify store path, default dir `./`; default filename `user_agents`
            .thread(20)                   // specify fetch thread, default 20
            .set_browsers(Browsers::new() // specify browsers
                .set_chrome()
                .set_firefox()
                .set_safari())
            .build();
        println!("{}", user_agent.random());        
    }
}

TODO

// selectable
let user_agents = UserAgents::new();
user_agents.chrome();
...

// more type
let user_agent = UserAgentsBuilder::new()
    .set_browsers(...)
    .set_crawlers(...)
    .set_link_checkers(...)
    .set_mobile_browsers(...)
    .build();

Dependencies

~20MB
~441K SLoC