ホームページ >バックエンド開発 >PHPチュートリアル >Curl メソッドがページをクロールするときに発生する問題、
少し前に、学校の教務システムへのログインを模擬するためにcurlメソッドを使用して(ASPで作成された、非常にひどい文章です)情報コンテンツをクローリングして、コンテンツ。
その後、学校の学務管理システムが更新され、JSPで記述され、認証コード機能が追加されました。その後、認証コードを取得して入力し、curlメソッドを使用してHTTPリクエストを送信しましたが、結果はキャプチャされました。それらはすべて 「データベースがビジーです。後でもう一度お試しください」 であり、URL を入力してアドレス バーに直接入力することで学術管理システムにアクセスでき、HTTP リクエストを行うために POSTMAN を使用します。 、GET メソッドと POST メソッドの両方がシステムに入ることができます。PHP の CURL メソッドを使用した場合のみ、「データベース ビジー」が発生します。 。その後、net:http メソッドを使用して同様のコードを書きました。「データベースがビジーです。後でもう一度お試しください。」というメッセージも表示されました。アドレス バーに URL をコピーして入力することもできます。 。何が問題なのか分かりません。 。助けを求める。 。
下の写真。 。
echo $url.'<br>'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $content = curl_exec($ch); curl_close($ch); echo $content;
//USERAGENT 模拟一个试试curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; c8650 Build/GWK74) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1s');
ユーザー エージェントを評価し、メイン モデルを見てみましょう。
//USERAGENT 模拟一个试试curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; c8650 Build/GWK74) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1s');
ユーザー エージェントが間違っていると思います。メインモデルが見ていきます。
print_r(file_get_contents($url)); これは何を要求しますか?
print_r(file_get_contents($url));
これは何を要求しますか? 上の図に示すように、
捕まえたパッケージを投稿して見てください。
前回の返信でコードを入力するのを忘れてしまいました
取得したパッケージを投稿して見てみましょう。
2. 彼は Cookie を持っていますが、あなたがそれをどのように処理したかを見ていませんでした
キャプチャしたパッケージを投稿して確認してください。
皆さんの返信のおかげで、問題は解決されました。
具体的な問題は、ログイン後に Cookie を取得し、その後の操作を実行する必要があると考えていました。後で、ログイン時に認証コードを取得するときに JSESSIONID (Cookie) が割り当てられることがわかりました。では、この Cookie を一緒に送信する必要があります。次に、最初にアクセスをシミュレートするカールを書きました
最初に検証コード アドレスへのアクセスをシミュレートするカールを書き、Cookie を取得して保存しました。検証コードが表示され、フォームが送信され、ポストフィールドに送信されると、シミュレーションは成功します。 。
ありがとうございます、すぐに投稿します