#browser #cookies #chromium #firefox #chrome

bench_scraper

A library for grabbing browser cookies from a filesystem

6 releases (3 breaking)

0.4.1 Dec 3, 2022
0.4.0 Nov 27, 2022
0.3.0 Nov 26, 2022
0.2.0 Nov 23, 2022
0.1.1 Nov 19, 2022

#732 in Filesystem

Download history 49/week @ 2023-12-04 29/week @ 2023-12-11 6/week @ 2023-12-18 95/week @ 2023-12-25 2/week @ 2024-01-15 15/week @ 2024-01-29 133/week @ 2024-02-05 84/week @ 2024-02-12 74/week @ 2024-02-19 40/week @ 2024-02-26 34/week @ 2024-03-04 42/week @ 2024-03-11 35/week @ 2024-03-18

160 downloads per month
Used in dash-mpd-cli

MIT/Apache

59KB
1K SLoC

Bench Scraper

Bench Scraper is a library for grabbing browser cookies from a filesystem.

Different browsers store their cookies in different locations, with different encryption methods, in different ways across operating system. Bench scraper abstracts this complexity into a few easy-to-use functions.

use bench_scraper::find_cookies;

fn main() {
    let browser_cookies = find_cookies().unwrap();
    for browser_cookie in browser_cookies.iter() {
        println!("Cookies for '{:?}'", browser_cookie.browser);
        for cookie in browser_cookie.cookies.iter() {
            println!("    '{:?}'", cookie);
        }
    }
}

The reqwest feature on this crate allows you to turn an iterator of cookies into a reqwest cookie jar. This lets you make web requests using the same state as a browser.

let browser_cookie = bench_scraper::find_cookies().unwrap().into_iter().next().unwrap();
let jar: reqwest::cookie::Jar = browser_cookie.cookies.into_iter().collect();

Browser Support

This library maintains a list of known browsers that can be used with the wildcard find_cookies() function. If you are using a non-standard browser or installation, other functions are available which allow for custom browser settings.

If you use a common browser that isn't supported, please file an issue with details on the browser!

Operating System Support

This library attempts to support a wide range of operating systems and browsers. Different functionality is gated based on the target for which the project using the library is compiled.

Currently, the library supports Windows, MacOS ("Darwin"), and Linux. If you have another operating system you'd like supported, please file an issue with details on how the implementation might look.

Dependencies

~26–43MB
~717K SLoC