人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

pixivのAPIをfile_get_contentsにて取得できませんでした。

取得したいデータ:
http://spapi.pixiv.net/iphone/search.php?s_mode=s_tag&word=sampl&PHPSESSID=0

ブラウザからのアクセスすると問題なく取得でするのですがPHPから叩くとタイムアウトになってしまいます。
ユーザーエージェントやリファラーの書き換えも試したのですが、いずれもfile_get_contentsがタイムアウトとなってしまいました。

試してみたこと:
(1)php_iniでのユーザーエージェント及びリファラーの書き換え
ini_set('user_agent', 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');

(2)stream_context_createでの書き換え

<?php
function pr($var) {
echo '<pre>'; print_r($var); echo '</pre>';
}
header('Content-Type:text/html; charset=UTF-8');
$url = 'http://spapi.pixiv.net/iphone/search.php?s_mode=s_tag&word=sampl&PHPSESSID=0';

$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
)
));
$html = file_get_contents($url, false, $context);
pr($html);


よろしくお願い致します…(x_x)

●質問者: ぽこすけ
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Cherenkov

ユーザエージェントをfirefoxではなくてiphoneにしてみるとどうでしょう。


Cherenkovさんのコメント
あでも「ブラウザからのアクセスすると問題なく取得」できるから的外れかも

ぽこすけさんのコメント
ご回答ありがとう御座いました。IEやchろめのユーザーエージェントでもタイムアウトとなってしまいました...よろしくお願い致します。

2 ● a-kuma3
ベストアンサー

簡単なスクリプト (php じゃなくて、Ruby だけど) で試してみたら、特に Agent や Referrer を指定しなくても、pixiv API の応答は取得できました。
なので、うまくいかないと言っているサーバでの spapi.pixiv.net への到達性や、許可の問題だと思います。

という辺りが原因じゃないか、と想像します。


ぽこすけさんのコメント
お忙しい中わざわざご確認頂きありがとう御座いました!Rubyからならアクセスできるのですね。。どうにかphpで読み込む方法があれば良いのですがアドバイス頂いた3つの点をひとつずつ確認してみたいと思います。

a-kuma3さんのコメント
>> Rubyからならアクセスできるのですね。。 << Ruby を使ったのは、ぼくが php が苦手なだけです。 「Ruby からなら」ではなくて、そのスクリプトがどこで動いているかが問題(多分)。 質問の (2) にあるコードは、そのまんまで動くって、コメントにも書かれてますし。

ぽこすけさんのコメント
度々コメントありがとう御座います。 反対に自分はRubyに触れたことすらないためPHPにこだわっていました…(お恥ずかしい限りです><) 他のサーバーにあるファイルはいずれもfopenで開けたため、「fopen_wrapper」は有効になっているかと思います。 Proxyについてですが、こちらを試したところ取得に成功しました。 ですがプロキシの寿命があまり長くないのでプロキシの状態を確認するのが少々大変創です。。

a-kuma3さんのコメント
へー、プロキシでしたか。 サーバの環境の問題かどうかを切り分けるためにも、 手元のパソコンで Apache + PHP が動くようにしておくと良いですよ。 恥ずかしいので、もう一回書きますけど、ぼくが Ruby を使ったのは、PHP が苦手だからで、普通なら、PHP を使ってコードを確認して、「これは、動くはずですよ」って回答しなきゃいけないところです (^^;
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ