-1

次のサイトからオッズを読みたい: http://uk.wettportal.com/Soccer/England/Premier_League/Arsenal_FC_-_Everton_FC_963003.html

オッズは、ajax を使用して動的に読み込まれます。ソース ページにオッズが含まれていません。そのようなページのコンテンツをphpを使って取得するテクニックはありますか?

4

1 に答える 1

1

data-url が修正されている場合は、単純な php ワンライナーですぐに使用できます。
$data = json_decode(file_get_contents('http://domain.com/data.json'));

「ajax」データ URL が固定されていない場合は、最初にホストページ (上記の行から json_decode を差し引いたもの) を取得し、そこから実際のデータリンクを取得する必要があります。

注: Web サイトの作成者が正しく仕事をしている場合は、リファラー、ブラウザーの http ヘッダー、セッション Cookie などをチェックするなどの対策が講じられている可能性があります。
これにより、データの取得がより困難になります (決して不可能ではありません)。 .

このような場合、CURL または php のfsockopen (ドキュメントはこちら) を使用して、ブラウザーをエミュレートします。
Cookie の処理 (そのサイトはそれを使用しているため!!! トラフィックを盗聴したため) と、おそらくリファラー (ホストページの URL) を忘れないでください。X-Requested-With: XMLHttpRequestヘッダーもお忘れなく。


例(あなたの場合):

関数から、refresh_oddsこれらのデータ URL がどのように構築されているかを確認できます (書式設定をクリーンアップしたので、読みやすくなっています)。

var url = "/lib/ajax/getEventResult.php";
var data = "event_id=" + $("#event_id").val() 
         + "&partner=" + $("#partner").val() 
         + "&lang=" + $("#language").val();

var url = "/lib/ajax/getOddsTable.php";
var data = "partner=" + $("#partner").val() 
         + "&lang=" + $("#language").val() 
         + "&period=" + $("#period").val() 
         + "&betgame=" + $("#betgame").val() 
         + "&eventmode=" + $("#eventmode").val() 
         + "&event_id=" + $("#event_id").val() 
         + "&bettype=" + $("#bettype").val();

これで、ライブ データ URL を構築するために、php スクリプトがホスト ページで検索する必要がある非表示の入力フィールド ID が何であるかがわかります。


更新(コメントによる)

オッズのタブは次のことを行います。

$("#period").val("fulltime");
refresh_odds();

期間タブは次のことを行います。

$("#period").val(period);
refresh_odds();

refresh_odds()...に戻る方法を参照してください。

幸運を

于 2013-04-12T16:52:35.973 に答える