代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
网页图片提取工具
作者:
zhensoft163
/ 发布于
2014/4/10
/
1320
网页图片提取工具
public Array MatchHtml(string html,string com) { List<string> urls = new List<string>(); html = html.ToLower(); //获取SRC标签中的URL Regex regexSrc = new Regex("src=\"[^\"]*[(.jpg)(.png)(.gif)(.bmp)(.ico)]\""); foreach(Match m in regexSrc.Matches(html)) { string src = m.Value; src = src.Replace("src=","").Replace("\"",""); if (!src.Contains("http")) src = com + src; if(!urls.Contains(src)) urls.Add(src); } //获取HREF标签中URL Regex regexHref = new Regex("href=\"[^\"]*[(.jpg)(.png)(.gif)(.bmp)(.ico)]\""); foreach (Match m in regexHref.Matches(html)) { string href = m.Value; href = href.Replace("href=", "").Replace("\"", ""); if (!href.Contains("http")) href = com + href; if(!urls.Contains(href)) urls.Add(href); } return urls.ToArray(); } [DllImport("kernel32.dll")] static extern bool SetConsoleMode(IntPtr hConsoleHandle, int mode); [DllImport("kernel32.dll")] static extern bool GetConsoleMode(IntPtr hConsoleHandle, out int mode); [DllImport("kernel32.dll")] static extern IntPtr GetStdHandle(int handle); const int STD_INPUT_HANDLE = -10; const int ENABLE_QUICK_EDIT_MODE = 0x40 | 0x80; public static void EnableQuickEditMode() { int mode; IntPtr handle = GetStdHandle(STD_INPUT_HANDLE); GetConsoleMode(handle, out mode); mode |= ENABLE_QUICK_EDIT_MODE; SetConsoleMode(handle, mode); } static void Main(string[] args) { EnableQuickEditMode(); int oldCount = 0; Console.Title = "TakeImageFromInternet"; string path = "E:\\Download\\loading\\"; while (true) { Console.Clear(); string countFile = "E:\\CountFile.txt";//用来计数的文本,以至于文件名不重复 int cursor = 0; if (File.Exists(countFile)) { string text = File.ReadAllText(countFile); try { cursor =oldCount = Convert.ToInt32(text);//次数多了建议使用long } catch { } } Console.Write("please input a url:"); string url = "http://www.baidu.com/"; string temp = Console.ReadLine(); if (!string.IsNullOrEmpty(temp)) url = temp; Match mcom = new Regex(@"^(?i)http://(\w+\.){2,3}(com(\.cn)?|cn|net)\b").Match(url);//获取域名 string com = mcom.Value; //Console.WriteLine(mcom.Value); Console.Write("please input a save path:"); temp = Console.ReadLine(); if (Directory.Exists(temp)) path = temp; Console.WriteLine(); WebClient client = new WebClient(); byte[] htmlData = null; htmlData = client.DownloadData(url); MemoryStream mstream = new MemoryStream(htmlData); string html = ""; using (StreamReader sr = new StreamReader(mstream)) { html = sr.ReadToEnd(); } Array urls = new MatchHtmlImageUrl().MatchHtml(html,com); foreach (string imageurl in urls) { Console.WriteLine(imageurl); byte[] imageData = null; try { imageData = client.DownloadData(imageurl); } catch { } if (imageData != null && imageData.Length>0) using (MemoryStream ms = new MemoryStream(imageData)) { try { string ext = Aping.Utility.File.FileOpration.ExtendName(imageurl); ImageFormat format = ImageFormat.Jpeg; switch (ext) { case ".jpg": format = ImageFormat.Jpeg; break; case ".bmp": format = ImageFormat.Bmp; break; case ".png": format = ImageFormat.Png; break; case ".gif": format = ImageFormat.Gif; break; case ".ico": format = ImageFormat.Icon; break; default: continue; } Image image = new Bitmap(ms); if (Directory.Exists(path)) image.Save(path + "\\" + cursor + ext, format); } catch(Exception ex) { Console.WriteLine(ex.Message); } } cursor++; } mstream.Close(); File.WriteAllText(countFile, cursor.ToString(), Encoding.UTF8); Console.WriteLine("take done...image count:"+(cursor-oldCount).ToString()); } }
试试其它关键字
图片提取
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
zhensoft163
贡献的其它代码
(
11
)
.
图片缩放图片剪切功能
.
网页图片提取工具
.
扫描图片去黑边
.
判断两张图片是否一致
.
c#组合键
.
迭代删除过期文件及文件夹
.
实现回车替代Tab
.
带附件邮件发送(支持多附件)
.
页面提交防刷新等待提示
.
DataTable 过滤重复数据
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3