0

ID、クラス、およびタグに含まれるその他の情報を取得する必要があります。私はScalaで作業していますが、Javaは問題ありません。これは完全一致パーサーです。「ボタン」のみを取得します。たとえば、「button id=...」は除外されます。他のパーサー?自分で作る?これは私がこれまでに見つけたものです。どんな助けでも大歓迎です。

// Currently(using Selenium WebDriver and Scala.XML):
// Opens Browser and goes to page
driver.get(URL)

// Gets XML/html/etc.. and converts it to XML format                                     
val xmlData = XML.loadString(driver.getPageSource)  

// Parse for buttons
(xmlData \ "button").text
4

2 に答える 2

0

jsoupライブラリをお勧めします。それは多くのクールな機能を備えており、ここに私のトップ3があります:

  • 非常に簡単に始めて使用できます
  • 壊れた/無効な HTML も解析可能
  • CSS セレクターの機能を提供します (JQuery に似ています)

以下に小さな例を示します。

val rows = (Jsoup connect "http://some.page.com/test.html" get) select 
  "h1:contains(Example Table Header) ~ table tr"

rows.toList drop 1 foreach { row =>
  println(row select "td:eq(1)" text)
}

この小さなスニペットは をダウンロードtest.htmlして解析し、次の構造に一致する HTML からすべてのテーブル行 (ヘッダー行を除く) を選択します。

<h1>Example Table Header</h1>

<table>
    <tr>
        <th>Id</th>
        <th>Name</th>
    </tr>
    <tr>
        <td>1</td>
        <td>Some</td>
    </tr>
    <tr>
        <td>1</td>
        <td>Test</td>
    </tr>
</table>

それは印刷されます:

Some
Test
于 2013-06-20T19:21:16.803 に答える
0

これは「自分のコードを実行してください」という質問であり、クローズする必要がありますが、少なくとも何かを試したことはあります。

1)解析

htmlに直接解析することはできません。xmlこれは有効なxmlではないため、 html パーサーを使用する必要があります。私はタグスープが好きです。

2)ボタンの検索

すべてのサブ要素を検索する\\代わりに、メソッドを使用する必要があります。\

3)属性の取得

\\または\メソッドを使用すると、 が得られますNodeSeq。オブジェクトを解析するには、それを反復処理する必要がありNodeます。

for(node <- nodeSeq) yield ???

メソッドを使用textして要素のテキストを取得し、メソッドを使用\して属性を取得できます。

val id = (node \ "@id").text
于 2013-06-20T19:25:34.670 に答える