メンバーの life169 は、以前に PHP セクションに (snoopy を使用して EMS 検証コードをキャプチャし、リモートでクエリ番号をシミュレートし、クエリ結果を取得する) という記事を投稿しました
リンクは次のとおりです: http://topic.csdn.net/u /20100715/ 23/d58f2006-40ea-4cab-82e3-3bbcf4cd1e9f.html
しかし、テスト中によく問題が発生しました。
session_start()
include("Snoopy.class .php") );
$url = "http://www.ems.com.cn/qcgzOutQueryNewAction.do?reqCode=gotoSearch";
$url2 = "http://www.ems.com.cn/qcgzOutQueryNewAction.do";
$snoopy = new Snoopy;
$snoopy->fetch($url); // すべてのコンテンツを取得
print_r($snoopy->headers);
Array ( [0] => HTTP/1.1 200 OK [1] => コンテンツタイプ: charset=GB2312 [2] => サーブレット/2.4 JSP/2.0 [3] => -範囲: バイト [4] => 接続: 閉じる [5] => 日付: 2011 年 3 月 15 日 11:24:53 GMT [6] => 年齢: 1876 [7] = > : 22804 )
正しい戻り情報は次のようになります:
Array ( [0] => HTTP/1.1 200 OK [1] => Cache-Control: no-cache="set-cookie" [2] => ; 接続: 閉じる [3] => 日付: 2011 年 3 月 11 日金曜日 07:42:04 GMT [4] => コンテンツ タイプ: text/html [5] => JSESSIONID=N5SMs1dMW1Wy8LJ48Z1ZhP1p2kS1GSgY5twTNxcYpz1MvgYZk0LQ!195316506; path=/ [6] => X-Powered-By: Servlet/2.4 JSP/2.0 )
前の戻り値には JSESSIONID がありません。したがって、後続のクエリでは返されません。 2 日間結果を調べましたが、インターネットで多くの情報を検索しましたが、まだ手がかりがありません。ブラウザで ems.php ページを開き、その後ページを更新すると、奇妙な現象が発生します。その間、正しいページ情報が返されますが、しばらくすると正しく返されなくなるのはなぜですか? 何が起こっているのか教えていただければ幸いです。緊急
サーバーの問題であるはずです。
この問題に対する解決策はありませんか?その具体的な理由は何ですか? Snoopy を使用せずに Firefox ブラウザから直接 EMS Web サイトにアクセスし、ツールを介して COOKIE を確認すると、実際には JESSIONID が生成されることがありますが、これができないのはなぜでしょうか。スヌーピーはどうですか?
ライフ169。もう一度この質問に答えていただけませんか?
昨日、私も Firefox でしばらくテストしましたが、幸いなことに、連続更新後にセッション ID をキャッチできました
カールを使用すると、スヌーピーよりもはるかに安定していて強力です。 csdn に私のソース コードがあります
こんにちは、curl について書いた特定の記事へのリンクを教えていただけますか?見つかりませんでした
また、スヌーピーに実装されているEMSクエリ機能もCURLを使って実装できますか?投稿の中で、CURL でテストが成功したと述べているようですが、参考のためにソース コードを提供していただけますか。
私のメールアドレス: 59325460@qq.com
あなたのメールアドレスに送信されました
life169、ありがとうございます。ソースコードを受け取りましたが、CURL を使用したテスト中、正しいデータはまだ返されません。 「ページに長時間滞在しすぎたため、電子メール クエリ フラグが失われています。クエリ ページを更新してください。
何が起こっているのかわかりません。引き続きアドバイスをお願いします。」
さて、以前作成したコードはもう使用できません
送信にはさらに 2 つのデータが必要です
reqCode verifyBASE
myEmsbarCode 7967913886707
mailNum EE082209212CS
E4E5AFF69 4E 4FAD581D8FC8 vpc9
最適化。 x 15
optijiaot. y 13
これは、js によって生成されているようで、元のファイルでは見ることができません。
では、CURL を通じてコンテンツを正しく取得できるようにするには、今何を変更する必要がありますか? Snoopy が JSESSIONID を取得できれば、データを正しく取得できます。
教えていただいたソースコードに何か変更する必要はありますか?
以前にクエリアドレスを変更したことがありますが、Snoopy を介して正しくクエリできる場合があるので、CURL が失敗していることがわかります。
新しく追加された 2 つの送信に必要なデータは密接に関連していないため、テスト時に他の要素を設定する必要がある可能性があります。
testcookiebb.txt ファイルのみを生成することはできません。私はこれまでに CURL をプレイしたことがありません。life169 がこの問題の解決に役立つことを願っています。 。 。
さて、今はちょっと忙しいので、今夜コードの完全版をお送りします
さて、life169 さん、ほぼ 3 日間この問題に取り組んできました。ちょっとおかしい。
life169 さん、コードの完全版の準備はできていますか?
それでは、ここからダウンロードしましょう
http://download.csdn.net/source/3100240
ありがとうございます。まずテストしてみます。
テストは完了しました。完璧です。EMS データを正しく安定して収集できます。 life169さん、本当に助かりました。
life169 こんにちは、ダウンロードしたプログラムでエラーが発生しました。pangz@sohu.com ありがとうございます
sea1126 こんにちは、実行できたコードを送っていただけますか。結果はエラーです。ありがとうございます、
さて、ここからダウンロードしましょう
http://download.csdn.net/source/3100240
こんにちは、life169 さん、コードは正常にテストされました。しかし、さらに一歩進んで、確認コードを入力するステップを回避することはできますか?このプログラムの確認コードを入力する必要があります。
ありがとうお兄さん
送ってもらえますか?これがとても必要なんです。 fob001@qq.com
コピーを送っていただけますか?これも必要です、ありがとうございます
yuxianhua@vip.qq.com
bilwy@vip.qq.com も必要です 誰が私にコピーを送ってくれますか
5 ポイント、貧しい人はそれを買う余裕がありません、私に送ってくださいコピーでいいですか? 1991753135@qq.com、ありがとうございます