0

プログラムで Web ページにアクセスし、そこから情報を抽出したいと考えています。

コードを使用して Web サイトにログインしJava、実際のブラウザーからの要求であるとサーバーに感じさせたいと考えています。

1つの問題がありますが、私はほとんどそこにいます.Webサイトでは、parameter - "sessid"リクエストごとに変化し続けるすべてのリクエストで渡す必要があります。

たとえば、最初にページにアクセスしたときsessid=90334、次のページでは のようになりsessid=78204ます。

したがって、urlI パスには の値が含まれている必要があります。sessidそれ以外の場合、認証は失敗します: www.somesite.com/somepage.php?sessid=75749

Web ページには の値を保持する 1 つの<input>タグが含まれsessidており、そのタグの値を取得する必要があります。

どうやってやるの?タグは次のようになります。

<input type="hidden" name="sessid" value="69529">

次のコードを使用して、Web ページ全体を正常に読み取ることができます。

   BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    StringBuilder response = new StringBuilder();
    String line;
    while ((line = rd.readLine()) != null) {
        response.append(line);
    }
4

1 に答える 1

0

クラスindexOfのメソッドを使用できます:StringBuilder

    String startInputFragment = "<input type=\"hidden\" name=\"sessid\" value=\"";
    int startIdx = response.indexOf(startInputFragment);
    if (startIdx >= 0) {
        int endIdx = response.indexOf("\">", startIdx);
        String val = response.substring(startIdx + startInputFragment.length(),
                endIdx);
        System.out.println("-->" + val + "<--");
    } else {
        //tag not found: you may throw an ex or do something else
    }
于 2012-11-15T04:38:49.387 に答える