2016-08-17 9 views
1

私は何年も携帯電話が進化してきた方法について研究していますので、多くの電話機の仕様でデータベースを作成する必要があります。私はGSMアリーナのウェブサイトからデータをスクラップしようとしています。私はwww.gsmarena.comからデータを抽出するためにXPATHが必要です

例のページ:私はそれぞれの値の前にラベルを含むXPATHを使用していますhttp://www.gsmarena.com/samsung_galaxy_note7-8082.php

、たとえば//のtr [は含まれています( "センサー"。)]/TD [2]

しかし、いくつかの値があり、カテゴリには最後のラベルがありません。

非リムーバブルのLi-Poの3500 mAhバッテリ

またはこのイノ:

高速バッテリ充電 チーワイヤレス充電、私はこの情報を選ぶにはどうすればよい

(市場に依存する) ANT +サポート S-Voice自然言語コマンドと口述 MP4/DivXの/ XviDの/ WMV/H.265プレーヤー MP3/WAV/WMA /のにeAAC +/FLACプレイヤー 写真/ビデオ編集 文書エディタ

異なる電話がページ上の行の数が異なることに注意してください、そうXPATHで[番号]を使用すると、

http://www.gsmarena.com/samsung_galaxy_note7-8082.phpから異なる情報を選ぶだろう - 機能

http://www.gsmarena.com/samsung_sgh_600-49.phpの5行目を選択する必要が - ROを選択する機能

答えて

1

の8行目を選択する必要がありあなたはこのXPathを使用する必要がバッテリーのセクション内のラベルなしのWS:特徴から情報を選択するには

//tbody[.//th[contains(.,'Battery')]]//td[@class="ttl" and not(*)]/following-sibling::td 

はサウンドにスピーカーを選択するには、カメラの機能

//tbody[.//th[contains(.,'Camera')]]//td[@class="ttl" and contains(.,'Features')]/following-sibling::td 

を選択するには、この

//tbody[.//th[contains(.,'Features')]]//td[@class="ttl" and not(*)]/following-sibling::td 

を使用しますカテゴリ

//tbody[.//th[contains(.,'Sound')]]//td[@class="ttl" and contains(.,'Loudspeaker')]/following-sibling::td 
+0

それは働いた!そして、私は当初は、先行するラベルなしで何かをスクラップすることはできませんが、私は別の問題を発見しました://カメラに特徴ラベルのデータだけを取り出す代わりに、tr [contains(。、 "Features")]/td [カテゴリでは、フィーチャカテゴリのすべてのデータも選択されます。また、/ tr [contains(。、 "Loudspeaker")]/td [2]は、同じラベルを持つため、2つのデータを選択します。 Sound and Testsカテゴリのスピーカーを別途購入するには?別のXPATHを手伝ってもらえますか? – Future

+0

答えを編集していただき、ありがとうございました。 1ヶ月後、Technologyには2G、3G、4Gのバンドを表示するボタンEXPANDがあることに気づいたので、データベースを追加することでデータベースを改善しましたが、特定の電話機ではデータベースを改善しました(例:http://www.gsmarena.com/apple_iphone_7_plus-8065.php )各バンドに2つの行がありますが、前のラベルがない2番目の行(CDMA 800/1900/2100 - A1661)を選択するにはどうすればよいですか? – Future

関連する問題