HTMLファイルからデータをダウンロードしてスクレイピングするアプリを作成しました。アプリは何ヶ月も正常に動作していましたが、ここ数日で停止しました.
これがコードです...
NSString* urlString = [@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=" stringByAppendingString:portCode];
urlString = [urlString stringByAppendingString:@"&PredictionLength=7"];
NSURL* easyTidesUrl = [NSURL URLWithString:urlString];
NSData* easyTidesHtmlData = [NSData dataWithContentsOfURL:easyTidesUrl];
NSURL オブジェクトを調べると、URL が正しく設定されておらず (文字列にエラーがあります)、NSURL オブジェクトは として表示されます。過去に同様の質問が寄せられたことは知っていますが (解決策を試してみましたが、この場合は機能しません)、アプリが正常に機能していたのに、何もせずに壊れてしまったのは奇妙に思えます!
ここにいくつかのコードがあります...基本的に動作を停止した部分は関数の最初の部分です...
+(void)getTides:(NSMutableArray *)tidalDateArray withPortCode:(NSString*)portCode
{
NSString *parameter = [portCode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"http://easytide.ukho.gov.uk/EASYTIDE/EasyTide/ShowPrediction.aspx?PortID=%@&PredictionLength=7", parameter];
NSURL *easyTidesUrl = [NSURL URLWithString:urlString];
NSData *easyTidesHtmlData = [NSData dataWithContentsOfURL:easyTidesUrl];
TFHpple* tidesParser = [TFHpple hppleWithHTMLData:easyTidesHtmlData];
NSString* easyTidesXPathQueryString = @"//div[@class='HWLWPanel']/table/tr/th[@class='HWLWTableHeaderCell']";
NSArray* tideDateNodes = [tidesParser searchWithXPathQuery:easyTidesXPathQueryString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];