gpt4 book ai didi

html - 从网站获取数据到 Tableview

转载 作者:行者123 更新时间:2023-11-29 13:20:38 24 4
gpt4 key购买 nike

我正在尝试使用 Hpple 包装器将网站中的数据获取到 TableView 中:https://github.com/topfunky/hpple .

在我看到的网站源代码中(相关部分):

<div id="traffic_content">
<marquee width="412" height="21" direction="right" scrollamount="3">
<a href="/Site/Traffic.aspx" id="ctl00_TrafficHolder">מעודכן לשעה: 16:40&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;בכביש תל אביב חיפה הישן, עומס תנועה ממחלף כפר סבא רעננה צפון עד מחלף הדרים, בגלל תנאונת דרכים.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;כביש מספר 70 עמוס מצומת אבליים עד צומת יבור.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;איילון דרום עמוס ממחלף רוקח עד מחלף לה גווארדיה. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;איילון צפון עמוס ממחלף חולון עד מחלף גלילות מזרח. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;***&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;שימו לב, בעלי זכות בחירה אשר יימצאו ביום הבחירות בישוב המרוחק למעלה מ-20 קילומטר מתחום השיפוט של הישוב בו ממוקם הקלפי בו הם אמורים להצביע, זכאים לנסיעה חינם בתחבורה הציבורית &#40;אוטובוסים והרכבת&#41;.יש להציג תעודה מזהה ואת ההודעה לבוחר.&#40;ממשו את זכותכם להצביע&#41;.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;למסירת ולקבלת דיווחים ותזמונים חייגו: 918 - 800 - 1-800&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;בנסיעה בקרבת בתי ספר, גינות משחקים ומתנ&quot;סים – יש להוריד מהירות, גם כשהכביש פנוי. בהגיעכם למעבר חצייה – אפשרו תמיד חצייה לילד המבקש לחצות. היו דרוכים, ערניים ומרוכזים, וחפשו אתם את הילדים העשויים להתפרץ לכביש.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;עורך דיווחי התנועה:בני כבודי</a>
</marquee>
</div>

我有兴趣将里面的内容放到表格 View 中。

所以我尝试了:

NSURL *trafficUrl = [NSURL URLWithString:@"http://www.glgltz.co.il/Site/Traffic.aspx"];
NSData *trafficHtmlData = [NSData dataWithContentsOfURL:trafficUrl];

TFHpple *trafficParser = [TFHpple hppleWithHTMLData:trafficHtmlData];

NSString *trafficXpathQueryString = @"//div[@id='traffic_content']/a";
NSArray *trafficNodes = [trafficParser searchWithXPathQuery:trafficXpathQueryString];

NSMutableArray *newTraffic = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in trafficNodes){
Traffic *traffic = [[Traffic alloc] init];
[newTraffic addObject:traffic];
traffic.name = [[element firstChild] content];
}

然后加载到 TableView 的NSArray。

当我调试代码时,我发现 trafficNodes 中有 0 个对象。

如何正确获取这些数据?

最佳答案

您忘记了 XPath 中的标签 ;) NSArray 是空的,因为没有 "div[@id='traffic_content']/a"

尝试修改如下:

@"//div[@id='traffic_content']/marquee/a"

我尝试使用以下代码下载它,一切似乎都有效;)

    //EDIT: //After converting trafficHtmlData the both the label and NSLog() show correct hebrew letters
NSData *trafficHtmlData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.glgltz.co.il/Site/Traffic.aspx"]];
NSString *trafficHTMLDataString = [[NSString alloc] initWithData:trafficHtmlData encoding:NSUTF8StringEncoding];
NSData *newData = [trafficHTMLDataString dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsHebrew)];
if (trafficHtmlData != nil) {
TFHpple *trafficParser = [TFHpple hppleWithHTMLData:trafficHtmlData];
NSArray *trafficNodes = [trafficParser searchWithXPathQuery:@"//div[@id='traffic_content']/marquee/a"];
TFHppleElement *element = trafficNodes[0];
//EDIT: Convert the first element in trafficNodes
NSString *string = [element content];
[self.label setStringValue:string];
NSLog(@"%@", string);

/*
NSMutableArray *newTraffic = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in trafficNodes){
Traffic *traffic = [[Traffic alloc] init];
traffic.name = [[element firstChild] content];
[newTraffic addObject:traffic];
}
*/
}

关于html - 从网站获取数据到 Tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14442323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com