web 网页截取图片

Posted 神来芒果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.pngstyle="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 *[email protected]"[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 网页截取图片的主要内容,如果未能解决你的问题,请参考以下文章

CefSharp截取完整网页图片,网页截图

如何利用ffmpeg将一小段视频截取成图片

C#实现网页加载后将页面截取成长图片

使用html2canvas js 截取网页图片下载

怎样Javascript截取Html的节点保存为图片,存放进本地的剪贴版中

html网页中图片横向滚动