4

私は現在、特に自分が所有していないWebサイトからのテキスト情報を使用するAndroidアプリを作成しています。さらに、一部のページでは認証が必要です。

一部のページでは、BasicNameValuePairsとそれに関連するオブジェクトを含むHTTPClientを使用して、ログインしてhtmlコードを取得できました。

残念ながら、これらのメソッドは、ブラウザ(Android Webviewでも)が通常実行するjavascript関数を実行せずにWebページソースを取得します。これらのスクリプトのいくつかが取得しているテキストが必要です。

私は自分の調査を行いましたが、私が見つけたものはすべて当て推量であり、非常に混乱しています。今のところログインが必要なページは無視しても大丈夫です。また、ソリューションの構築に役立つ可能性のあるコードを投稿したいと思います。独立したプロジェクトです。

javascript呼び出しからhtml結果をスクレイピングするための具体的な解決策はありますか?例は絶対に一流です。

4

2 に答える 2

8

最終的な成功:

私が試した他のこと:

  • Androidが提供する HttpClient
    • javascriptを実行できません
  • HtmlUnit
    • 4時間、成功しません。また巨大で、私のapkに12mbを追加しました。
  • SL4A
    • 最終的にコンパイルされました。このガイドを使用して設定しました。単純なサイの瓶のやり過ぎとして放棄されました。

うまくいくかもしれないこと:

  • セレン

さらなる結果が掲載されます。その他の結果は、投稿された場​​合に追加されます。

注:上記のオプションの多くは相互に参照しています。rhinoはsl4aとhtmlunitの両方に含まれていると思います。また、htmlunitにはセレンが含まれていると思います。

于 2012-06-19T23:32:10.967 に答える
4

前述の解決策は非常に遅く、1つのURLに制限されます(実際にはそうではありませんが、ユーザーが結果を待ち焦がれている間に、Rhinoで10のURLをスクレイプすることをあえてします)。

別の方法は、クラウドスクレイピングソリューションを使用することです。使用しないコンテンツをダウンロードする際に電話の帯域幅を無駄にしないという利点があります。

このソリューションを試してください:Bobik Java SDK

それはあなたにほんの数秒で何百ものサイトをこすり取る能力を与えます

于 2012-06-26T01:32:00.437 に答える