0

Objective-cを使用してWebサイトからデータを取得しようとしています。これはすべて私にとって非常に新しいので、私はいくつかの調査を行いました。私が今知っているのは、xpathを使用する必要があるということです。そして、iPhone用のhppleと呼ばれる別のラッパーがあります。私はそれを自分のプロジェクトで稼働させています。

サイトから情報を取得する方法について混乱しています。どうやら私はこのコード行で正規表現を使用することになっています:

NSArray * a = [doc search:@"//a[@class='sponsor']"];

これは単なる例です。それは検索の内容ですか:@ "...."正規表現ですか?もしそうなら、私は自分のプログラムがサイトを解析するために必要な何百ものパターンを開発できると思います(私はたくさんのデータが必要です)が、より良い方法はありますか?私はこれで非常に迷っています。どんな助けでも大歓迎です。

4

2 に答える 2

1

パラメーターはXPathであり、正規表現ではありません。内訳は次のとおりです。

  • すべてのxpathは、コンテキストノードを基準にして解釈されます。この場合、それはルートノードです。
  • //「すべての子孫」を意味する略語です
  • a「ノードタイプが「a 」のすべての子ノード」を意味します(HTMLでは、これはアンカーです) 。
  • [...]述語が含まれ、a一致する ものだけを絞り込みます
    • @属性ノードの略語です
    • @class「クラス」という名前の属性を意味します
    • @class='sponsor'「スポンサー」に等しいクラス属性を意味します。これは、 ;などの「スポンサー」を含むクラスのノードとは一致しないことに注意してください。<a class="big sponsor" ...>クラスは等しくなければなりません。

全体として、「'sponsor'に等しいクラスを持つルートから派生した'a'ノード」があります。

于 2010-10-24T16:04:18.337 に答える
0

これはXPath式であり、正規表現ではありません。W3CにはXPathリファレンスがあります:http ://www.w3.org/TR/xpath/ 。基本的に、クラス「sponsor」で<a>要素を検索しています。

これは良いことであることに注意してください!正規表現はHTMLの解析には適していません。

于 2010-10-24T15:54:44.177 に答える