栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

unity下载网页所有图片

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unity下载网页所有图片

用unity的c#脚本批量下载网页上的所有图片

1、将网页的html保存到本地
在网页上鼠标右击另存为如下图所示
保存html文件
2、通过截取获取图片存储的地址

经过两个步骤之后就可以开始着手敲代码了

代码 html下载的本地地址和要保存的图片地址
 //保存在本地html文件
    string localityAddress = "file:///D:/emoji/emoji.html";
   
    //本地地址
    string filepath= "D:\emoji\image\twitter\";
    //按顺序加载图片
    int imgcount;
    //保存的图片链接
    List androidimgur = new List();
    
读取html数据并截取图片地址
   void Start()
    {
      string add=gethtml(localityAddress);
       StartCoroutine( GetImage(add));
    }
 /// 
   /// 读取HTML数据
   /// 
   /// 
   /// 
    private string gethtml(string url)
    {
        WebClient web = new WebClient();
        byte[] data = web.DownloadData(url);
        return Encoding.Default.GetString(data);
    }   
     //截取图片地址 数据过大可以用协程,数据量小可以不用直接用主程写
    IEnumerator GetImage(string info)
    {
        androidimgur.Clear();
        string startStr = @" ;
        string endStr = @""">";
        string regex = "(?<=(" + startStr + "))[.\s\S]*?(?=(" + endStr + "))";
       //截取中间的图片地址
        MatchCollection matchCol = Regex.Matches(info, regex);
        if (matchCol.Count > 0)
            for (int i = 0; i < matchCol.Count; ++i)
            {
                androidimgur.Add(matchCol[i].Value);
            }
        DownLoadCtrl();
        yield return new WaitForSeconds(0);
    }
将截取的图片地址进行下载并存到本地
 //加载图片
    private IEnumerator DownLoadFirle(string url,UnityAction complete)
    {
        UnityWebRequest uwr = UnityWebRequest.Get(url);
        Debug.Log("链接地址:" + url);
        yield return uwr.SendWebRequest();
        if (uwr.isHttpError || uwr.isNetworkError)
        {
            Debug.Log(uwr.error);
        }
        else
        {
            while (!uwr.isDone)
                yield return null;
            byte[] data = uwr.downloadHandler.data;
            CreaFile(url, data);
        }
        complete();
    }
   /// 
   /// 存本地
   /// 
   /// 网上图片的地址
   /// 字节流
    private void CreaFile(string url,byte[]bytes)
    {
        string path = filepath;
       //找到图片地址的最后一个‘/’的位置来找到图片的名字
        int count = url.LastIndexOf(@"/");
        //命名规则按照网上图片的名字,也可以自定义
        string name = url.Substring(count + 1, url.Length-count - 1);               
        string dirpath = Path.GetDirectoryName(path);
        if (Directory.Exists(dirpath))
            Directory.CreateDirectory(dirpath);
        path += name;
        Stream sw=File.Create(path);
        sw.Write(bytes, 0, bytes.Length);
        sw.Close();
        sw.Dispose();
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号