asp.net怎么采集页面上所有图像图片资源
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要讲解了"asp.net怎么采集页面上所有图像图片资源",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"asp.net怎么采集页面上所有图像图片
千家信息网最后更新 2025年01月31日asp.net怎么采集页面上所有图像图片资源
这篇文章主要讲解了"asp.net怎么采集页面上所有图像图片资源",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"asp.net怎么采集页面上所有图像图片资源"吧!
////// 下载指定URL下的所有图片 /// public class WebPageImage { ////// 获取网页中全部图片 /// /// 网页地址 /// 网页编码,为空自动判断 ///全部图片显示代码 public string getImages(string url, string charSet) { string s = getHtml(url, charSet); return getPictures(s, url); } ////// 获取网页中全部图片 /// /// 网址 ///全部图片代码 public string getImages(string url) { return getImages(url, ""); } string doman(string url) { Uri u = new Uri(url); return u.Host; } ////// 获取网页内容 /// /// 网站地址 /// 目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码 ///string getHtml(string url, string charSet) { WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient // 需要注意的: //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等 //这是就要具体问题具体分析比如在头部加入cookie // webclient.Headers.Add("Cookie", cookie); //这样可能需要一些重载方法。根据需要写就可以了 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。 myWebClient.Credentials = CredentialCache.DefaultCredentials; //如果服务器要验证用户名,密码 //NetworkCredential mycred = new NetworkCredential(struser, strpassword); //myWebClient.Credentials = mycred; //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号) byte[] myDataBuffer = myWebClient.DownloadData(url); string strWebData = Encoding.Default.GetString(myDataBuffer); //获取网页字符编码描述信息 Match charSetMatch = Regex.Match(strWebData, "]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(? [^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>"); string s = string.Empty; for (int i = 0; i < ps.Count; i++) { pictures p = new pictures(ps[i].Value, url); s += p.GetHtml + "
" + Environment.NewLine; } return s; } ////// 图片实体 /// 图片文件属性处理类 /// public class pictures { public pictures(string strHtml, string baseUrl) { _html = strHtml; Uri u1 = new Uri(baseUrl); _doman = u1.Host; _baseUrl = u1.Scheme + "://" + _doman; setSrc(); } private string _html = string.Empty; private string _baseUrl = string.Empty; private string _doman = string.Empty; public string GetHtml { get { return _html; } } public string Alt { get { return GetAttribute("alt")[0]; } } public string Src { get { string s = GetAttribute("src")[0]; return s; } } ////// 根据基路径把相对路径转换成绝对径 /// /// 基础路径 /// 待转换的相对路径 ///绝对路径 public string absUrl(string baseUrl, string u) { Uri ub = new Uri(baseUrl); Uri ua = new Uri(ub, u); return ua.AbsoluteUri; } private void setSrc() { string strPattern = @"src[\s\t\r\n]*=[\s\t\r\n]*[""']?\S+[""']?"; string src = GetAttribute("src")[0].ToLower(); if (!(src.IndexOf("http://") == 0 || src.IndexOf("https://") == 0) && _baseUrl.Length > 10) { src = absUrl(_baseUrl, src); string s = "src=\"" + src + "\""; _html = Regex.Replace(_html, strPattern, s); } } ////// 获取HTML代码中标签属性 /// /// HTML代码 /// 属性名称 ///属性值集合 private string[] GetAttribute(string strAttributeName) { ListlstAttribute = new List (); string strPattern = string.Format( @"{0}[\s\t\r\n]*=[\s\t\r\n]*[""']?\S+[""']?", strAttributeName ); MatchCollection matchs = Regex.Matches(_html, strPattern, RegexOptions.IgnoreCase); foreach (Match m in matchs) { lstAttribute.Add(m.Value.Split('=')[1].Replace("\"", "").Replace("'", "")); } if (lstAttribute.Count == 0) lstAttribute.Add(""); return lstAttribute.ToArray(); } } }
调用:
new WebPageImage().getImages(http://www.sina.com)
感谢各位的阅读,以上就是"asp.net怎么采集页面上所有图像图片资源"的内容了,经过本文的学习后,相信大家对asp.net怎么采集页面上所有图像图片资源这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
图片
网页
资源
编码
路径
图像
图片资源
页面
代码
属性
内容
问题
学习
验证
地址
网址
分析
凭据
原因
名称
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术应用教学总结反思
世界网络安全大赛360
达梦数据库7备份还原
赤壁市解封网络技术
dell服务器 E01S
网络安全清理存在的问题
网络安保与网络安全的区别
平台管理服务器询价
网络安全领域公司
生产上遇到数据库死锁
小微卫星软件开发
中国线上线下消费数据库
挖泥船设计软件开发
陕西思安信息网络安全
美团存储数据库直播
软件开发 缩略词与术语
邮网络技术研究院
计算机网络技术与应用第三版
安装12c数据库
中国台湾餐饮软件开发服务介绍
数据库取出的数据乱码
网络安全信息化建设发展规划
数据库的选择投影与联接
服务器怎么拆开外壳
网络安全的技术种类及作用
海康软件开发用什么工具
怀旧服服务器配置参数
区块链网络安全安博通
网络安全体系构件包括哪两项
软件开发工作心得一句话