抓取HTML中的图片资源
来源:互联网 发布:南京行知基地学农宿舍 编辑:程序博客网 时间:2024/05/01 03:26
我所了解的,解决获取html中资源的方法有两种,一种是html解析,产用的是封装了libxml的TFHpple,虽然这个类库有一定的实用性,但是也有一些局限性,获取html中的资源,我更倾向于使用正则表达式。下面就通过请求一个url,从请求到得html中获取的image,来说明一下怎么样获取html中的资源。
废话少说,直接上代码,下面两个是我写的两个方法,如果急着使用,可以直接复制粘贴,如果感觉还行,清评论下留下你的脚印
-(NSString*) urlstring:(NSString*)strurl{ NSURL * url = [NSURL URLWithString:strurl]; NSData *data = [NSData dataWithContentsOfURL:url]; //GBK转码,解决中文乱码问题 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000); NSString * retStr = [[NSString alloc] initWithData:data encoding:enc]; return retStr;}
具体上面这个方法是干什么的,可以通过代码里面的注释去理解
下面看第二个方法
-(NSMutableArray *)substringByRegular:(NSString *)regular andResult:(NSString *)htmlResult{ NSString * reg=regular; NSRange r= [htmlResult rangeOfString:reg options:NSRegularExpressionSearch]; NSMutableArray *arr=[NSMutableArray array]; //递归,截取符合正则表达式要求的字符串,并把符合要求字符串存放在可变数组中 if (r.length != NSNotFound &&r.length != 0) { while (r.length != NSNotFound &&r.length != 0) { NSString* substr = [htmlResult substringWithRange:r]; [arr addObject:substr]; NSRange startr=NSMakeRange(r.location+r.length, [htmlResult length]-r.location-r.length); r=[htmlResult rangeOfString:reg options:NSRegularExpressionSearch range:startr]; } } return arr;}
这个方法是根据正则表达式,截取你想要的内容。
如果你不想理解怎么截取的,想尽快实现此功能,那么,你需要做的就是把上面这两个方法复制到你的工程里面,按照下面的样子去调用就行了,看看下面调用的代码:
NSString * str = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.lomowo.com/posts/47689"] encoding:4 error:nil]; NSLog(@"==result = %@",[self substringByRegular:@"(?<=src=\").+?\\.(gif|jpg|bmp|png)(?=\")" andResult:str]);
这个正则表达式,是获取html中的图片url的正则表达式,如果你想获取其他资源,只需要换一下这个正则表达式即可。//获取图片
[arr enumerateObjectsUsingBlock:^(NSString * obj, NSUInteger idx, BOOL *stop) {
if ([obj rangeOfString:@"http://"].length>0)
{
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:obj]];
UIImage * image = [UIImage imageWithData:data];
NSLog(@"-height = -%f--width = %f",image.size.height,image.size.width);
}
}];
ok,文章就写到这,希望我这几个小时的忙碌能够帮助到一些人
更多地技术资源
- 抓取HTML中的图片资源
- Python3 抓取网页中的图片
- Python3 抓取网页中的图片
- python 抓取天堂图片网中的图片
- Android中的图片资源
- Python 爬虫 抓取百度图片资源 压缩图片
- 正则表达式 抓取html中的邮箱
- Python之抓取html中的手机号
- 抓取html页面中的json数据
- html中的图片标签
- 怎样抓取网页中的图片地址呢?
- 简单的抓取网页中的图片
- python抓取word中的图片并另存为
- 访问资源中的html文件
- ios 加载资源中的Html
- java将文档转换成html页面代码 (doc中的图片生成资源文件)
- curl伪造reffer抓取图片资源的方法
- curl伪造reffer抓取图片资源的方法
- Excel 人民币大写函数(亲自实践)
- windows和linux下设置控制台CTRL+C等特殊按键的回调函数之后程序结束的过程
- Integer.valueOf(String s)与Integer.parseInt(String s)区别
- Tomcat:Caused by: java.lang.OutOfMemoryError: PermGen space解决方案
- C++函数与程序结构
- 抓取HTML中的图片资源
- 清除XCode缓存和生成文件
- 硬盘安装Win7
- Selenium私房菜系列4 -- Selenium IDE的使用
- 用Win6Ins安装win7就是这么简单!
- WINDOWS 7 全套OEM+ Key激活器
- c++中 *& 和 **& 符号作用说明
- 网络流体积
- 远景会员定制GHOST WIN7 2010珍藏版