代码之家  ›  专栏  ›  技术社区  ›  Jorge Israel Peña

抓取和解析维基百科页面

  •  5
  • Jorge Israel Peña  · 技术社区  · 16 年前

    我想知道Objective-C中是否有任何现有的库或可以从Objective-C访问的库,这些库允许我刮取格式如下的页面 this one NSString 可能已经有用于此的内置方法。这是真的吗?

    编辑

    我能想出 this request 它返回一些HTML编码的文本(格式是XML,但它包含页面的文本,如 »a href=

    编辑2 :好的,谢谢你 this doc page constructed link 它返回原始数据( )请参阅有关章节。然而,我想我需要解析它,尽管如果真的是这样,它应该比整篇文章容易得多。

    有没有人对Objective-C中解析wiki标记有什么建议?

    ==Events==
    * [[710]] – [[Saracen]] invasion of [[Sardinia]].
    *[[1275]] – Traditional founding of the city of [[Amsterdam]].
    *[[1682]] – [[Philadelphia]], [[Pennsylvania]] is founded.
    

    我想我最后想要的是 NSDictionary 或类似的集合,用于存储日期和附带的信息片段。谢谢

    7 回复  |  直到 10 年前
        1
  •  4
  •   mbauman    16 年前

    添加 &format=fmt 到查询的结尾,如中所述 API:Data_formats . 您的查询变成: JSON query

    您可以轻松地解析整个部分,然后将HTML格式的输出显示到Web视图中。

        2
  •  3
  •   kprevas    16 年前

        3
  •  3
  •   peter.murray.rust    16 年前

    我以各种方式从WP中搜集了大量数据。格式取决于很多因素,包括信息所在子域的类型以及输入时间。正文是自由格式的,没有简单的方法来删减。这些信息框是一种特殊的WP格式,多年来已经发生了变化。它不是设计用来刮的。

    到目前为止,你最好的策略是联系你想要搜索的领域中的维基百科人——他们会知道数据库格式,并且很可能会提供帮助——他们肯定会的 帮助他们,因为他们希望看到语义形式的WP(例如DBPedia)- http://dbpedia.org/About ).

        4
  •  2
  •   Piotr Byzia    16 年前

    Python算数吗?;)它是 .

        5
  •  1
  •   Kendall Helmstetter Gelner    16 年前

    我将建议在混合HTML数据流中使用正则表达式进行目标数据提取。

    RegexKitLite (确保向下滚动并获取灯光版本)。它最终是一个在NSString上有一些扩展的类,允许您执行正则表达式,然后您将定义一个正则表达式,其中包含两个捕获的匹配项—一个用于数字,一个用于内容,以及一些用于封闭标记和中间标记的未捕获匹配项。尽管它是标准正则表达式的“精简”版本,但它几乎支持您需要的任何功能。

    API方法很有前途,但一旦获得原始标记,您可能必须采用类似的正则表达式方法来解析其中的数据。不过,如果它能降低正则表达式的复杂性和数据传输时间,这可能还是有意义的,没有理由不能同时使用这两种方法。

        6
  •  0
  •   Oren Mazor    16 年前

    如果任何一个在线网站能以一种好的方式公开他们的数据,那就是维基百科。

    考虑将一篇文章作为XML、RDF甚至JSON。

        7
  •  0
  •   nolim1t    16 年前

    我有一个iPhone应用程序,它使用以下命令进行屏幕抓取:

    使用YQL,您可以通过对DOM使用XPATH查询从web获取所需的任何信息。