ios 根据url获取html,并解析

本文介绍了在iOS开发中如何从不同编码格式的网站抓取内容的方法,包括使用NSData及NSMutableURLRequest进行GET请求,并设置User-Agent来模拟浏览器行为。同时讨论了如何根据不同网站的编码特点选择合适的解码方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tag0 

NSData*siteData = [[NSDataalloc]initWithContentsOfURL:[NSURLURLWithString:@"http://weibo.cn/1337970873/zhryqfJB4?pos=65"]];

   NSString *strTest = [[NSStringalloc]initWithData:siteDataencoding:NSUTF8StringEncoding];

这方法只能获取那些使用utf8编码的网站,.....


tag1:

NSMutableURLRequest *req = [[[NSMutableURLRequestalloc ]initWithURL:url]autorelease];

    [req setHTTPMethod:@"GET"];

    [req setValue:@"AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5"forHTTPHeaderField:@"User-Agent"];

   NSURLConnection *conn = [[[NSURLConnectionalloc]initWithRequest:reqdelegate:self]autorelease];

然后在fiinsh函数中解码receivedata, 不管你用什么方式,都不行...(

    NSString *results = [[[NSStringalloc]initWithData:_receivedDataencoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)]autorelease];

   // NSString *results = [[[NSString alloc]initWithData:_receivedData encoding:NSUTF8StringEncoding]autorelease];

不信你多试点网站)


tag2:

NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

        NSError *error;

        NSString *content = [NSStringstringWithContentsOfURL:url

                                                     encoding:enc

                                                        error:&error];

最开始用的这个方法,坑爹啊! 不解释...


Now:

         NSData*siteData = [[[NSData alloc] initWithContentsOfURL:url]autorelease];

    NSString *content =[[[NSString alloc] initWithData:siteData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)]autorelease];

    if (!content) {

        [content release];

        content = [[NSString alloc] initWithData:siteData encoding:NSUTF8StringEncoding];

    }

加一个判断

下面就是解析html了,获取其中的titile标签和任一个img标签



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值