0

を。xyz.com/items/advsearch で単純な URL クローラー ( PHP で単純なクローラーを作成するにはどうすればよいですか? ) を使用しています。このページには、誰かが高度な検索 (すべての結果を一覧表示) を実行した後の結果が一覧表示されます。それらの結果をコピー/破棄する必要があります。ここで、「次へ>」ページに移動すると、その URL がエンコードされ、「次へ>」の URL にクロールすると、詳細検索のメイン ページに戻り、0 件の結果が表示されます。

b. 私が指摘したもう1つのことは、単純な人間のURLトラバーサルでは、「Next>」のURLにパラメーターとしてjessionidが含まれていませんが、file_get_contents()を使用してページのhtmlを取得すると、それがあります。どうしてこうなの??

クロールできないエンコードされた URL やセッションをいじるのはかなり難しいと思います。緊急の助けが必要です。

4

1 に答える 1

0

jsessionidは通常、Cookieに保存されて送信されます。リンクURLに追加することは、クライアントがCookieをサポートしていない可能性があることをJavaアプリケーションが認識した場合のフォールバックにすぎません。これが、WebブラウザでページをトラバースするときにjsessionidパラメータがURLに追加されない理由です。これは、ブラウザがCookieを適切に処理するのに対し、PHPスクリプトは処理しないためです。

于 2011-12-29T13:43:10.180 に答える