34

私は、次のことを達成するために使用できるライブラリの調査に 1 日を費やしました。

  • 結果をビューにレンダリングせずに、バックグラウンドのように Web ページの完全なコンテンツを取得します。
  • lib は、たとえば最初の HTML がロードされた後に追加の結果データをロードするために ajax リクエストを起動するページをサポートする必要があります。
  • 結果の html から、要素を xpath または css セレクター形式で取得する必要があります。
  • 将来的には、次のページに移動する必要がある可能性もあります (イベントの起動、ボタン/リンクの送信など)。

これが私が成功せずに試したことです:

  • Jsoup: うまく機能しますが、javascript/ajax はサポートされていません (そのため、ページ全体が読み込まれません)
  • HttpEntityに組み込まれたAndroid:jsoupと同じjavascript/ajaxの問題
  • HtmlUnit: まさに私が必要としているものに見えますが、数時間後に Android で動作させることができません (他のユーザーは 12MB 以上の jar ファイルをロードしようとして失敗しました。私自身が完全なソース コードをロードし、それを見つけるためだけにプロジェクト ライブラリとして参照しました。アプレットや java.awt (HtmlUnit で使用) などは Android には存在しません)。
  • Rhino - これは非常に紛らわしく、Android で動作させる方法がわかりません。
  • Selenium Driver: 動作するように見えますが、実際の html がビューに表示されないように、ヘッドレスで実装する簡単な方法がありません。

私のソリューションに最も適していると思われるので、HtmlUnitが機能することを本当に望んでいます。私のニーズに適した、見逃した方法または少なくとも別のライブラリはありますか?

私は現在 Android Studio 0.1.7 を使用しており、必要に応じて Ellipse に移行できます。

前もって感謝します!

4

2 に答える 2

0

私は上記の実装 (JavaScript の挿入) を採用しましたが、それは私にとってはうまくいきます。WebView の可視性を他の UI 要素の下に非表示に設定するだけです。私もセレンで同じことをすることを考えていました。私はPythonでChromeでセレンを使用しましたが、それは素晴らしいですが、あなたが言ったようにブラウザウィンドウを表示しないのは簡単ではありません. しかし、Androidでコンポーネントを表示しないことは可能かもしれないと思います. 私は試してみる必要があります。

于 2019-05-26T06:01:41.880 に答える