-(void)startRequest
{
NSString *message = @"http://www.laiwangbiaoju.com";
NSURL *url = [NSURL URLWithString:[message URLEncodedString]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[SVProgressHUD showWithStatus:@"加载中..."];
[request startAsynchronous];
}
-(int)indexByValue:(NSString *)str{
//使用NSMutableString类,它可以实现追加
NSMutableString *value = [[NSMutableString alloc] initWithFormat:@""];
NSString *colum2 = @"";
int j = 0;
//遍历出下标值
for(int i=1;i<[str length];i++){
NSString *colum1 = [str substringFromIndex:i];
[value appendString:colum2];
colum2 = [colum1 substringToIndex:1];
if([colum2 isEqualToString:@","]){
j = [value intValue];
break;
}
}
return j;
}
-(NSString *)str:(NSString *)str value1:(NSString *)value1 value2:(NSString *)value2{
//i:左边匹配字符串在str中的下标
int i;
//j:右边匹配字符串在str1中的下标
int j;
//该类可以通过value1匹配字符串
NSRange range1 = [str rangeOfString:value1];
//判断range1是否匹配到字符串
if(range1.length>0){
//把其转换为NSString
NSString *result1 = NSStringFromRange(range1);
i = [self indexByValue:result1];
//原因:加上匹配字符串的长度从而获得正确的下标
i = i+[value1 length];
}
//通过下标,删除下标以前的字符
NSString *str1 = [str substringFromIndex:i];
NSRange range2 = [str1 rangeOfString:value2];
if(range2.length>0){
NSString *result2 = NSStringFromRange(range2);
j = [self indexByValue:result2];
}
NSString *str2 = [str1 substringToIndex:j];
return str2;
}
-(void)requestFinished:(ASIHTTPRequest *)request
{
NSString *data = [request responseString];
//NSLog(@"--------------------------------------------------------");
NSLog(@"--data---%@",data);
NSString* str = [self str:data value1:@"<p class=\"title\">" value2:@"</p>"];
NSLog(@"--------------------------------------------------------");
NSLog(@"--str---%@",str);
NSData *htmlDataUTF8 = [str dataUsingEncoding:NSUTF8StringEncoding];
//NSLog(@"htmlDataUTF8,%@",htmlDataUTF8);
NSLog(@"--------------------------------");
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlDataUTF8];
NSString *xpathQuery1 = [[NSString alloc] initWithFormat:@"//a"];
NSArray *elements1 = [xpathParser searchWithXPathQuery:xpathQuery1];
NSString *tmp;
for (TFHppleElement * element in elements1) {
tmp = [element text];
NSLog(@"tmp %@",tmp);
if(tmp != nil)
[key addObject:tmp];
}
[SVProgressHUD showSuccessWithStatus:@"加载完成"];
}
-(void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
NSLog(@"error %@",[error localizedDescription]);
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"注意" message:@"网络连接失败" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alertView show];
}
- (void)viewDidLoad
{
[super viewDidLoad];
key = [[NSMutableArray alloc] initWithCapacity:0];
[self startRequest];
// Do any additional setup after loading the view, typically from a nib.
}
直接贴代码: