web 网页截取图片
关于在UIwebview上添加滚动图片 两种滚动手势会混淆,应为webview有webview.scrollview的属性
故参照昨天的随笔 scrollview嵌套解决方案。
本篇随笔主要讲循环使用正则表达式,本人在此提供一个在线编辑正则表达式、并验证的好东东网址如下:
http://www.rubular.com/
可以事先校验好自己的正则表达式,我在网上搜索好多 抓取网页所有图片的方法 寥寥无几 我觉得我的方法特别方便 在此收入自己的博客
正则法则1:<img [^>]*src\\s*=\\s*\"([^>]+)\"
这个是 获取 img 的所有属性 包括 img 的长宽等 比如结果:<img src="http://img.iknow.bdimg.com/app/qrcode.png" style="height:609px; width:528px" />
我想提取的是src的图片名称 以下是 进步版本
正则法则 2:src=((.+)('|\.gif|\.jpg|\.png))
就可以获取到 src="http://img.iknow.bdimg.com/app/qrcode.png
再用字符串属性 [str1 substringFromIndex:5];去掉前5个字符就可以了
其实我想用正则直接得到目标串 但是没实现 ,如果哪位亲 会的话 一定要告诉我 哦
循环提取当前网页所有src 方法如下:

//正则法则start
-(NSMutableArray*)match_fun:(NSString *)searchText Regex:(NSString *)regTags
{
NSMutableArray *arr=[[[NSMutableArray alloc]init]autorelease];
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
options:NSRegularExpressionCaseInsensitive // 还可以加一些选项,例如:不区分大小写 error:&error];
NSLog(@"正则法则 判断结果: %@",error);
NSArray *matches = [regex matchesInString:searchText options:0 range:NSMakeRange(0, [searchText length])];
// NSLog(@"%@",matches);
// 用下面的办法来遍历每一条匹配记录
// NSString *re=@"[iI][mM][gG][\s]*[sS][rR][cC][\s]*=[\s'\"]*(?<ref_value>.*?(\.gif|\.jpg|\.png)) ";
int i=0;
for (NSTextCheckingResult *match in matches) { NSRange matchRange = [match range]; NSString *tagString = [searchText substringWithRange:matchRange]; // 整个匹配串 [arr insertObject:tagString atIndex:i];
i++;
//NSLog(@"tagString: %@",tagString);
}
return arr;
}
//调用:
NSString *searchText = [showWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
NSString *regTags = @"src=((.+)('|\.gif|\.jpg|\.png))";//@"<img [^>]*src\\s*=\\s*\"([^>]+)\"";
NSMutableArray *arr=[[[NSMutableArray alloc]init]autorelease];
arr=[self match_fun:searchText Regex:regTags];
NSLog(@"结果 arr :%@",arr);
for(int i=0;i<count;i++)
{
NSString *str1=[NSString stringWithFormat:@"%@",[arr objectAtIndex:i]];
str1= [str1 substringFromIndex:5];
/////其他操作
}

web 网页截取图片的更多相关文章
- WEB网页插件 如何实现 选择上传图片路径 【高级问题】
发表于 2010-10-22 12:11 | |只看楼主 按键精灵程序里面的WEB网页插件 如何实现 选择上传图片路径 我想在上传图片的选框设置图片路径为 C:\fakepath\001. ...
- web开发常用图片格式
web开发常用图片格式有:gif jpg/jpeg png gif:图片压缩率高,可以显示动画,但是只能显示256色,可能造成颜色丢失. jpg:图片压缩率高(有损压缩),可以用小文件来显示 ...
- web网页练习
一. HTML部分 1. XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同: XHTML 元素必须被正确地嵌套. XHTML 元 ...
- chrome也可以整张网页截图,保存完整网页为图片
转自:http://www.webkaka.com/blog/archives/chrome-save-a-webpage.html 关于浏览器截图,一直以为Chrome无能为力,最近发现,原来Chr ...
- Jquery 网页转换为图片
/* html2canvas 0.5.0-alpha1 <http://html2canvas.hertzen.com> Copyright (c) 2015 Niklas von Her ...
- TI IPNC Web网页之网页修改教程
web网页程序修改 打开gStudio之后,点击菜单栏中Help->Contents.先把这个诡异的编程语言看一遍吧.这里搬一些东西出来. GoDB简介 从第一副图片中,我们可以看出,从源文件到 ...
- 使用wget工具抓取网页和图片 及 相关工具几个
想保存一些网页,最后找到这 wget 的 shell脚本,虽然不是太理想,亲测可用呢. 使用wget工具抓取网页和图片 来源 https://my.oschina.net/freestyletim ...
- 【Python之路】特别篇--微信Web网页版通信的全过程分析
文章所使用Python版本为py3.5 1.微信服务器返回一个会话ID 微信Web版本不使用用户名和密码直接登录,而是采用二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录. ...
- web网页中使用vlc插件播放相机rtsp流视频
可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 使用vlc进行二次开发做自己的播放器 vlc功能还是很强大的,有很多的现成的二次开发接口,不需配置太多即可轻松做客户端播放 ...
随机推荐
- python xml与字典的相互转换
def trans_xml_to_dict(xml): """ 将微信支付交互返回的 XML 格式数据转化为 Python Dict 对象 :param xml: 原始 ...
- ES6中的Map集合(与java里类似)
Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...
- 对tensorflow 中的attention encoder-decoder模型调试分析
#-*-coding:utf8-*- __author = "buyizhiyou" __date = "2017-11-21" import random, ...
- 编译spark源码及塔建源码阅读环境
编译spark源码及塔建源码阅读环境 (一),编译spark源码 1,更换maven的下载镜像: <mirrors> <!-- 阿里云仓库 --> <mirror> ...
- fiddler实现后端接口 mock(不需要修改开发代码)
转载:http://blog.csdn.net/huazhongkejidaxuezpp/article/details/50435552 步骤 1. 获取 接口 定义(接口返回的json串) ...
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/51636998 整体步骤: (1) 在pom.xml加入jdbcTemplate的依赖: ...
- Java取得操作系统的临时目录
一般来说,程序员用Eclipse在Windows上编程,而会将war/ear包发布到Linux的服务器上. 涉及临时文件输出的话需要找一个临时目录,下面的语句就能帮你获得不分操作系统的临时目录 Str ...
- Java.lang.NoClassDefFoundError--找不到相应的类
如题Java.lang.NoClassDefFoundError 错误可能是由于找不到指定的类引起的. 一般出现在java 反射调用,或者通过jniRegisterNativeMethods手动注册j ...
- ANT使用 - 用for和foreach的方法遍历一个文件夹,查找到某个文件并删除
转自:http://www.cnblogs.com/QAZLIU/p/3732329.html?utm_source=tuicool&utm_medium=referral build.xml ...
- 【MVC5】First Unit Test
1.控制器测试 注意点: 1.控制器中不要包含业务逻辑 2.通过构造函数传递服务依赖 例:MathController中有一个Add的Action using FirstUnitTest.Servic ...