获取网页中全部图片.doc_第1页
获取网页中全部图片.doc_第2页
获取网页中全部图片.doc_第3页
获取网页中全部图片.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Net;using System.IO;using System.Text;using System.Text.RegularExpressions;namespace Syccw.Controllers public class Get_Url / / 获取网页中全部图片 / / 网页地址 / 网页编码,为空自动判断 / 全部图片显示代码 public string getImages(string url,string charSet) string s = getHtml(url, charSet); return getPictures(s, url); / / 获取网页中全部图片 / / 网址 / 全部图片代码 public string getImages(string url) return getImages(url, ); public string doman(string url) Uri u = new Uri(url); return u.Host; / / 获取网页内容 / / 网站地址 / 目标网页的编码,如果传入的是null或者,那就自动分析网页的编码 / public 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, meta(*)charset=(*), RegexOptions.IgnoreCase | RegexOptions.Multiline); string webCharSet = charSetMatch.Groups2.Value.Replace(, ); if (charSet = null | charSet = ) charSet = webCharSet; if (charSet != null & charSet != & Encoding.GetEncoding(charSet) != Encoding.Default) strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer); return strWebData; public string getPictures(string data, string url) MatchCollection ps = Regex.Matches(data, imgb*?bsrcstrn*=strn*?strn*(?strn*)*?/?strn*); string s = string.Empty; for (int i = 0; i ps.Count; i+) pictures p = new pictures(psi.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 = srcstrn*=strn*?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) List lstAttribute = new List(); string strPattern = string.Format( 0strn*=strn*?S+?, strAttributeName ); MatchCollection matchs = Regex.Matches(_html, strPattern, RegexOptions.IgnoreCase); fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论