ホームページ > ウェブフロントエンド > htmlチュートリアル > 【Jsoup】doc.getElementsByTag('img'); 認証コード画像 _html/css_WEB-ITnose を取得できません

【Jsoup】doc.getElementsByTag('img'); 認証コード画像 _html/css_WEB-ITnose を取得できません

WBOY
リリース: 2016-06-24 11:44:32
オリジナル
1438 人が閲覧しました

内の要素

<body class="body">    <div class="headColor">      <div class="headControl">                <img class="image-abclogo" src="https://mobile.abchina.com/mpay/mobileBank/zh_CN/EBusinessModule/image/abclogo.png"></img>              </div>    </div>    <div class="container">        <br />        <h5 class="form-signin-heading">&#x519c;&#x884c;&#x7f51;&#x4e0a;K&#x7801;&#x652f;&#x4ed8;&#xff1a;<br /></h5>        <form method="post" action="/mpay/KCodePaymentCheckAct.ebf">        <label for="inputPassword" class="sr-only">&#x519c;&#x884c;&#x5361;&#x53f7;&#xff1a;</label>        <input type="text" class="form-control" placeholder="请输入卡号" required autofocus style="margin:0px 0px 3px 0px;" name="CardNo"/>        <label for="inputPassword" class="sr-only">&#x624b;&#x673a;&#x53f7;&#x540e;&#x56db;&#x4f4d;&#xff1a;</label>        <input type="text" class="form-control" placeholder="请输入手机号后四位" required autofocus style="margin:0px 0px 3px 0px;" name="MobileNo"/>        <input type="text" id="indentityCode" class="form-control" placeholder="请输入验证码" required style="margin:0px 0px 3px 0px;" name="imageCode" maxlength="4">        <img class="image-indentity pull-right" style="margin:0px 8px 0px 0px;" src="kimageCodeAct.do?random=201504301102343603&ebf_cookie=evniwmih5jg3m4gz4c5uxuch" alt="" />                    <input type="hidden" name="MerchantID" value=""/>         <input type="hidden" name="MerchantName" value="******"/>           <input type="hidden" name="OrderNo" value="J000302015043011025128810001"/>        <input type="hidden" name="OrderAmount" value="3.50"/>        <input type="hidden" name="OrderDate" value="2015/4/30 0:00:00"/>        <input type="hidden" name="OrderTime" value="2015/4/30 11:02:51"/>        <input type="hidden" name="abc_formId" value="9999"/>        <input type="hidden" name="isRead" value="0"/>        <input type="hidden" name="payment" value="1"/>        <input type="hidden" name="TokenTmp" value="14303629533850965238"/>        <input type="hidden" name="payTypeTmp" value="1010"/>        <br />        <button class="btn btn-lg btn-abc btn-block" type="submit" onclick="">确定</button>        <input type="hidden" name="ebf_cookie" value="evniwmih5jg3m4gz4c5uxuch"/></form>        <br /><br />                  <p class="text-center sr-only">m.abchina.com</p>      <p class="text-center sr-only">全国24小时服务热线:95599</p>      <p class="text-center sr-only">中国农业银行版权所有</p>    </div><!-- /.container -->    <p class="text-center">        m.abchina.com<br />        &#x5168;&#x56fd;24&#x5c0f;&#x65f6;&#x670d;&#x52a1;&#x70ed;&#x7ebf;&#xff1a;95599<br />        &#x4e2d;&#x56fd;&#x519c;&#x4e1a;&#x94f6;&#x884c;&#x7248;&#x6743;&#x6240;&#x6709;    </p>    <!-- Bootstrap core JavaScript    ================================================== -->    <!-- Placed at the end of the document so the pages load faster -->    <script src="js/jquery-2.1.3.min.js"></script>    <script src="js/bootstrap.min.js"></script>    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>  </body>
ログイン後にコピー


このページのすべての要素、
 <img class="image-abclogo" src="https://mobile.abchina.com/mpay/mobileBank/zh_CN/EBusinessModule/image/abclogo.png"></img>
ログイン後にコピー

のみを取得できますが、 doc.select("[src]") を使用しても
<img class="image-indentity pull-right" style="margin:0px 8px 0px 0px;" src="kimageCodeAct.do?random=201504301102343603&ebf_cookie=evniwmih5jg3m4gz4c5uxuch" alt="" />
ログイン後にコピー

を取得できません。


ディスカッションへの返信 (解決策)

jsoup が検証コードを取得できないのは 要素ですか?

ここで検証コード画像を取得する必要があります。私が考えた解決策は、検証コード画像要素を取得し、その「src」を取得することです。

この方法で検証コード画像を取得できます。

他に入手方法はありますか?ありがとう!

誰も答えませんでした! ! ! !


1. 投稿したソースコードはブラウザでコピーされたものですか、それとも jsoup によって収集され印刷されたものですか

2. コピーされた場合は、jsoup を使用してアクセスし、印刷して、あなたが言及した画像が存在するかどうかを確認してください

3. によるとあなたの説明、あなたが言及した画像は存在しません。この画像は js によって生成された可能性があります。

4. js によって生成されている場合は、このページの js を調べて、URL を生成する js を見つけて自分で生成する必要があります

5. URL を取得した後、注意する必要があります。この時点で、ページのセッション (セッション ID) を維持する必要があります。一部の Web サイトでは、rf のすべてのパラメータを確認するために Google Chrome を使用することをお勧めします。取得した検証コードが正しいかどうかを確認するために、リクエストを実行し、すべてをシミュレートします

1. 投稿したソースコードはブラウザでコピーされたものですか、それとも jsoup で収集して印刷されたものですか

2. コピーされた場合は、jsoup を使用してくださいアクセスして印刷して、あなたが言及した画像が存在するかどうかを確認してください

3. あなたの説明によれば、あなたが言及した画像は存在しない可能性があります。

4. js によって生成されている場合は、このページの js を調べて、URL を生成する js を見つけて自分で生成する必要があります

5. URL を取得した後、注意する必要があります。この時点で、ページのセッション (セッション ID) を維持する必要があります。一部の Web サイトでは、rf のすべてのパラメータを確認するために Google Chrome を使用することをお勧めします。リクエストしてから、取得した確認コードが正しいものになるように、すべてをシミュレートしてください

ご返信ありがとうございます!
これで問題は解決しました!
1. コードは jsoup によって収集されます。
3. 4. この画像は js によって生成される必要があります。このページの js は取得できませんでしたが、生成方法を推測し、最終的に img を取得しました
5. URL を取得した後、ブラウザでその URL に直接アクセスできます。この URL にはパラメータが含まれています。 ebf_cookie、これは「会話を続けましょう」である必要があります。


この問題は解決されましたが、jsoup を使い始めたばかりですが、この画像が js によって生成される可能性があることに最初は気づきませんでした。問題を分析するあなたの方法は非常に優れており、学ぶ価値があります。ご返信いただきありがとうございます。結び目を結びます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート