小紅書去水印軟件_rust開源

源碼:

use std::io;
use std::io::copy;
use std::io::Read;
use std::fs;
use std::fs::File;
use regex::Regex;
use reqwest;
use reqwest::Client;
use libwebp::WebPDecodeRGBA;
use image::{ImageBuffer, DynamicImage, Rgba};
 
fn main() {
    loop {
        let mut url = String::new();
        println!("請輸入鏈接:");
        io::stdin().read_line(&mut url).expect("讀取輸入時出錯");
        url = url.trim().to_string();
        if !url.starts_with("http") {
            println!("鏈接輸入錯誤,應以\"http\"開頭");
            continue;
        }
 
        let client = Client::new();
        let mut response = client
            .get(&url)
            .header("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 ")
            .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36")
            // 這里填你自己的小紅書cookie
            .header("cookie", "")
            .send()
            .unwrap();
        let body = response.text().unwrap();
         
        let title_re = Regex::new(r#"<title>(.*?)<"#).unwrap();
        let title = title_re.captures(&body).and_then(|caps| caps.get(1)).map(|m| m.as_str());
         
        let videos_re = Regex::new(r#","(http.*?mp4)""#).unwrap();
        let video = videos_re.captures(&body).and_then(|caps| caps.get(1)).map(|m| m.as_str());
 
        let images_re = Regex::new(r#"CRD_WM_WEBP","url":"(.*?)""#).unwrap();
        let images: Vec<&str> = images_re.captures_iter(&body).map(|caps| caps.get(1).unwrap().as_str()).collect();
         
        if let Some(title) = title {
            let mut dir_name = format!("{}", title);
            dir_name.retain(|c| c.is_alphanumeric() || c == '_' || c == '-');
            let _ = fs::create_dir_all(&dir_name);
             
            if let Some(video_url) = video {
                let video_filename = format!("{}/{}.mp4", dir_name, title);
                let v_url = video_url.replace(r"\u002F", "/");
                let mut resp = reqwest::get(&v_url).unwrap();
                let mut video_file = File::create(video_filename.clone()).unwrap();
                copy(&mut resp, &mut video_file).unwrap();
                println!("{}.mp4    ok", title);
                continue;
            }
             
            let mut image_counter = 0;
            for image in &images {
                let image_url = image.replace(r"\u002F", "/");
                let mut resp = reqwest::get(&image_url).unwrap();
                let mut buffer: Vec<u8> = Vec::new();
                resp.read_to_end(&mut buffer).unwrap();
                 
                let data: &[u8] = &buffer;
                let (width, height, buf) = WebPDecodeRGBA(data).unwrap();
                let image_buffer: ImageBuffer<Rgba<u8>, Vec<u8>> = ImageBuffer::from_vec(width, height, buf.to_vec()).unwrap();
                let image = DynamicImage::ImageRgba8(image_buffer);
 
                let image_filename = format!("{}/{}.jpg", dir_name, image_counter);
                image.save(image_filename.clone()).unwrap();
                println!("{}.jpg    ok", image_counter);
                image_counter += 1;
            }
        }
    }
}

現成:

圖片[1]-小紅書去水印軟件_rust開源

想要去除小紅書上的水???不用擔心!給你推薦一個基于Rust開源去水印的方法,幫助你輕松去除小紅書中的水印,解決你的困擾??靵碓囋嚢?!

地址:

------本頁內容已結束,喜歡請分享------
溫馨提示:由于項目或工具都有失效性,如遇到不能做的項目或不能使用的工具,可以根據關鍵詞在站點搜索相關內容,查看最近更新的或者在網頁底部給我們留言反饋。
? 版權聲明
THE END
喜歡就支持一下吧
點贊1223 分享
評論 共20條

請登錄后發表評論