HTMLソースの取得エラーについて

このQ&Aのポイント
  • 現在、wikipedeaの解析を行っていますが、wikipedeaの履歴のソースコードを取得できません。
  • エラーが発生し、HTTPリクエストが禁止されています。
  • 解析に別の方法があるかどうか教えてください。
回答を見る
  • ベストアンサー

HTMLソースの取得

現在,wikipedeaの解析を行っています. wikipedeaの履歴のソースコードをf取得したいのですが,以下のようなエラーが出て取得できません. <エラー> Warning: fopen(http://ja.wikipedia.org/w/index.php?title=%E3%82%A2%E3%83%8B%E3%83%A1&action=history") [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in… 何かいい方法はないでしょうか. よろしくお願いします.

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • warez
  • ベストアンサー率57% (29/50)
回答No.2

UA によって 403 を返しているみたいです。 $url = 'http://ja.wikipedia.org/w/index.php?title=%E3%82%A2%E3%83%8B%E3%83%A1&action=history'; $opts = array('http' => array( 'method' => 'GET', 'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)' )); print_r(file_get_contents($url, false, stream_context_create($opts)));

0574349
質問者

お礼

無事にアクセスすることが出来ました. どうもありがとう御座います.

その他の回答 (1)

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> 403 Forbidden アクセスを拒否されているページのようなので無理でしょう。

0574349
質問者

お礼

回答ありがとうございます. 何か方法がないかもう少し考えてみます.

関連するQ&A

  • fopenでURL内容の取得のエラー

    fopen(<URLを指定>,'r'); としたときにエラーが発生してしまいます。 この現象は環境によって出る場合と出ない場合があります。 以下はいずれもphpinfo()で取得したPHPとApacheのバージョンです。 <エラーが出ない環境> PHP Version 4.2.3 Apache/1.3.27 <エラーが出る環境> PHP Version 4.3.9 Apache/1.3.31 (Win32) PHP/4.3.9 エラーメッセージは以下のようなものです。 Warning: fopen(<ここにアクセスしたURLが表示>): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in <エラーが出ているプログラムと、fopen()の行が表示> よろしくお願い致します。

    • 締切済み
    • PHP
  • coincheckのAPIの使い方【PHP】

    coincheckのAPIの使い方が分かりません。 自分の資産の取得は出来ましたが新規注文等POSTするのが全然出来ません。 自分のPOST方法が間違えていると思うのですが 私のPOST方法はfile_get_contentsでPOST送信をしようとしています。 ですがRequestがうまく行って無いのかな?っと思います。 failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in というエラーが返って来ます。 Request方法や解決方法がわかる方いらっしゃいませんか? よければサンプルでコードを書いていただけるとうれしいです。

    • 締切済み
    • PHP
  • クロールしたときのエラー対処について

    これまで同じプログラムで稼動していたのに、つい最近動かしたら下記エラーが出てしまいました、、 Warning: fopen(http://www.AAA.jp/ここはパラメータが入ってます。) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\xampp\htdocs\phpget\get2.php on line 4 line 4 に記述されているもの ↓ function getURL( $pURL ) { $_data = null; if( $_http = fopen( $pURL, "r" ) ) {   ←ここが4行目 while( !feof( $_http ) ) { $_data .= fgets( $_http, 1024 ); } fclose( $_http ); } return( $_data ); } これは、クロール先のサーバ側が何らかの設定変更によるものでしょうか? こちらで対処できる方法があれば教えていただきたく よろしくお願いします。

    • 締切済み
    • PHP
  • HTTP_Requestで画像ファイルを取得、保存

    こんばんわ。 php_pearの/HTTP_Request/について質問させて下さい。 下のコードのように、画像ファイルのアドレスをHTTP_Requestへ渡して $picへ格納し、fopen以下でサーバーの指定フォルダへ保存 という内容のコードを書いたのですが、巧く動かずエラーが出てしまいます。 $picで受け取るデータに問題があるのではと推測して、その線で調べてはみたのですが、 どうもハッキリとしません。 何が原因で、どうすれば正常に動くのかをアドバイスして頂けないでしょうか。 宜しくお願いします。 ~~~~~~~~~~~~~略~~~~~~~~~~~~~~~ $req =& new HTTP_Request("画像のアドレス",$option); $req->addHeader("User-Agent", "My PEAR PROGRAM"); $req->addHeader("Referer", "http://www.yahoo.co.jp/"); if (!PEAR::isError($req->sendRequest())) { //$picへ画像ファイルを格納// $pic = $req->getResponseBody(); $read_fp = @fopen($pic,"r"); $write_fp= @fopen("保存先パス","w+"); while($line=fread($read_fp,filesize($pic))){ fwrite($write_fp,$line); } fclose($read_fp); fclose($write_fp); } =====================エラーメッセージ======================= Warning: filesize() [function.filesize]: stat failed for yOya Warning: fread(): supplied argument is not a valid stream resource Warning: fclose(): supplied argument is not a valid stream resource =====================システム情報補足======================= System Linux PHP Version 5.2.3 allow_url_fopen Off allow_url_include Off

    • ベストアンサー
    • PHP
  • file_get_contents使用時のエラーについて

    file_get_contents使用時に下記のようなエラーが出ました。 ===エラーの内容=== PHP Warning: file_get_contents(<取得するURL文字列>): failed to open stream: HTTP request failed! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> in <エラーの起きたファイル名> on line 32 ===概要=== yahooの検索apiを利用して検索結果を取得しようとしています。 別のサイトでは同様の構文で取得できているので、書き方に問題はないと思うのですが、サーバやphpの設定は多少違う部分があるかもしれません。 いろいろ探してみましたが、原因がわかりません。 取得するURLは直にたたくとちゃんと見ることができます。 心当たりがある方、補足説明が必要な方、ご回答よろしくお願いします。

    • 締切済み
    • PHP
  • fopenでファイルがオープンできません

    $fp = fopen(TEST_FILE, "w") としてオープンしようとすると Warning: fopen(mybasic9.txt): failed to open stream: No such file or directory と、オープンしようとしたファイルがない、と出ます そして、そのファイルをあらかじめ作っておくと OKです。 しかし fopen(TEST_FILE, "w") は該当ファイルがあればそれをオープンし 無ければ、新しく作成する、とFopenの仕様に出ています。 これは、今使っているサーバーの問題でしょうか 何か、避ける方法はないでしょうか よろしくお願いします

    • 締切済み
    • PHP
  • LWPでHTMLが取得できないことがある

    LWPを使ってHTMLを取得しようとしているのですが、取得可能のサイト、不可能のサイトがあります。 たとえばyahooのトップページは取得できますが、wikipediaは取得できません。取得できない場合、エラーメッセージは出ません。 このようになる理由を教えてください。 よろしくお願いいたします。 環境:windowsXP & ActivePerl、またはwindowsXP & cygwin コード: #wikipediaのトップページHTMLを取得する use LWP::Simple; $site = get "http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"; print $site; #yahooのトップページHTMLを取得する use LWP::Simple; $site = get "http://www.yahoo.co.jp/"; print $site;

    • ベストアンサー
    • Perl
  • file(), file_get_contents(), fopen() がタイムアウトしてしまう

    パスが正しいかどうかを何度も確認しましたが、スクリプトのURLをブラウザで開こうとすると、5~6秒した後、以下のエラーが出ます。 Warning: file_get_contents(読み込むファイルのパス): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in スクリプトのパス.php on line 16 おそらく、file_get_contentsの読み込もうとするファイルが重たすぎるのだと思います(スクリプトのファイルサイズ自体は軽いのですが処理に時間がかかってしまう)。というのも、読み込むファイルの内容を、<?php echo "hello world"; ?> とすると、エラーが出なくなり、正常に読み込んでくれます。また、読み込むファイルは php ファイルで同ドメイン上にあり、このファイルをブラウザから閲覧可能です。 他に、fopen, include, file も試しましたが、同様に上記のようなエラーがでます。これはサーバ側でスクリプトの処理の時間制限を行っているからでしょうか? ちなみに、スクリプトの冒頭に、 set_time_limit(0); 一番最後に set_time_limit(30); をおいてみましたが、結果は同様でした。 もし何か対処方法をご存知の方おられましたら、どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • 「file_get_contents」で「HTTP/1.0 504 C

    「file_get_contents」で「HTTP/1.0 504 Connection Timed Out」 ini_set('default_socket_timeout',300); ini_set('max_execution_time',300); 上記のように書いた上で、ちょっと重いAPI(XML)を file_get_contentsで取得するプログラムをcrontabで動かし、 結果(成功か失敗か、出力結果等)がメールで送られるようになっています。 毎日午前1時0分に実行されるようにしているのですが、 二日に1回くらいの頻度で午前1時3分に以下のように書かれたメールが届きます。 Warning: file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 504 Connection Timed Out in /home/***/***/***.php on line 36 この504エラーというのは、PHPの書き方しだいで回避できるものなのでしょうか? default_socket_timeoutは300秒(5分)になっているので、 1時3分にメールが送られてきているということは、 PHPがタイムアウトと判断する前に終了しているということでしょうか? サーバー側が504エラーという結果を返しているということですか? よろしくお願いします。

    • 締切済み
    • PHP
  • この表示はどういう意味なのでしょうか?

    おとといまで普通に見れたサイトがこのような表示のまま2日たちました。これはどういう意味なのでしょうか?閉鎖という意味なんでしょうか?ちなみに普通の音楽情報サイトです。 Warning: file_get_contents(http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=1VS2CSFJJ1VHW79RB5G2&AssociateTag=x0c-22&Operation=ItemSearch&ResponseGroup=Medium,Offers&SearchIndex=Blended&Keywords=ELLECTGARDEN%25E3%2582%25A2%25E3%2583%25BC%25E3%2583%2586%25E3%2582%25A3%25E3%2582%25B9%3325E3%2583%2588&ItemPage=1): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable in /lvm09/vuser03/3/8/0050683/www.@@@@@@@@.jp/main/pcapi.php on line 136 Fatal error: Call to a member function on a non-object in /lvm09/vuser03/3/8/0050683/www.@@@@@@@@.jp/main/pcapi.php on line 142

専門家に質問してみよう