使用 NSScanner 获取维基百科文章摘要问题

发布于 2024-09-24 16:27:34 字数 929 浏览 8 评论 0原文

我正在尝试获取一篇文章的摘要并将其作为字符串下载。这对于某些文章非常有用,但维基百科网站不一致。因此 NSScanner 经常失败,而它对于其他文章却工作得很好。

这是我的 NSScanner 实现:

NSString *separatorString = @"<table id=\"toc\" class=\"toc\">";                                 
NSScanner *aScanner = nil;
NSString *container = nil;
NSString *muString = [NSString stringWithString:@"</table>"];

aScanner = [NSScanner scannerWithString:string];  
[aScanner setScanLocation:0];                                                   
[aScanner scanUpToString:muString intoString:nil];           
[aScanner scanString:muString intoString:nil];    

[aScanner scanUpToString:separatorString intoString:&container];

如何改进?或者还有其他方法可以得到这个吗?

为了可视化我想要文章的哪一部分,这里有一个示例:

http://en.wikipedia.org/ wiki/Indigo

从这里我想要从“靛蓝是电磁波谱上的颜色”到“英语是在 1289 年”的所有内容。

谢谢!

I am trying to get the summary of an article and download it as a string. This works great with some articles, but the wikipedia website is inconsistent. So NSScanner fails pretty often while it works fine for other articles.

Here's my NSScanner implementation:

NSString *separatorString = @"<table id=\"toc\" class=\"toc\">";                                 
NSScanner *aScanner = nil;
NSString *container = nil;
NSString *muString = [NSString stringWithString:@"</table>"];

aScanner = [NSScanner scannerWithString:string];  
[aScanner setScanLocation:0];                                                   
[aScanner scanUpToString:muString intoString:nil];           
[aScanner scanString:muString intoString:nil];    

[aScanner scanUpToString:separatorString intoString:&container];

How could this be improved? Or is there another way of getting this?

To visualize which bit of the article I want, here's an example:

http://en.wikipedia.org/wiki/Indigo

from this I'd want everything from "Indigo is the color on the electromagnetic spectrum" to "in English was in 1289".

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

っ左 2024-10-01 16:27:34

您可以使用 WebKit 的 DOM API 来走实际的结构,而不是试图盲目地解析文本。

You could use WebKit's DOM API to walk the actual structure, rather than trying to parse the text blindly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文