0

ウェブサイトからjsonデータを取得しようとしています。最初のリンクでは、空白が返されます。しかし、2 番目では、json を返します。

最初のリンクからjsonデータを取得する方法を知っている人はいますか?

このコードにアクセスする前に、次のリンクでログインしてください: https://loginfree.globo.com/login/438 ユーザー: cartolaewlfa@gmail.com パス: cartoletasfc

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<iframe src="http://cartolafc.globo.com/time/claudioivp-allianz/atletas.json?rodada_id=12"></iframe>
<?php
$file = json_decode(file_get_contents("http://cartolafc.globo.com/time/claudioivp-allianz/atletas.json?rodada_id=12"));

print_r($file);

echo "casa";
?>

<iframe src="http://cartolafc.globo.com/mercado/filtrar.json?page=1&order_by=preco&clube_id=277"></iframe>
<?php
$file = json_decode(file_get_contents("http://cartolafc.globo.com/mercado/filtrar.json?page=1&order_by=preco&clube_id=277"));

print_r($file);

echo "casa";
?>
</body>
</html>
4

1 に答える 1

1

どうやら最初の json URI では、ユーザーが Web サイトにログインする必要があります。

ここで私が目にする唯一の解決策は、curl (またはその他の任意の方法) を使用してブラウザーをエミュレートし、その Web サイトのログイン プロセスに従って、ログイン、パスワード、および必要なその他の情報を送信することです。その後、生成される Cookie をキャッチできます。Cookie を取得したら、保持して cookiejar ファイルまたはデータベースに保存できます。

これらの Cookie を使用すると、json ファイルを取得できます。オブジェクトfile_get_contentsを使用して送信するstream_contextか、curl を使用している場合はCURLOPT_COOKIECURLOPT_COOKIEJAR

もちろん、これらの Cookie は期限切れになります。保存された Cookie の有効期限が切れた場合に新しい Cookie を取得する検証プロセスをセットアップするだけです。

この json ファイルの内容が頻繁に更新されない場合、またはユーザーがこれらの更新をすぐに取得することがそれほど重要でない場合は、アクセス制限なしでこの json ファイルのコピーをサーバーに保持することができます。

ばかげているかもしれませんが、そのドメインがあなたのものである場合(またはアクセスできる場合)、そのファイルのログイン認証を切り取るだけですか??

于 2012-08-23T04:38:46.153 に答える