• ベストアンサー

ログインが必要なページ内容の取得方法を教えてください

file_get_contents 関数でページ内容(データ)を取得しようと思ったのですが・・・ログインが必要なページ(マイページ)内だったので取得できずログインページになってしまいました・・・ このような場合、どうすればよいのでしょうか? 自分のやりたい目的としては、会員サイトのマイページ内の特定のページのデータを取得したいのですが・・・ 他の関数などでよいのですが、何か良い方法はありますでしょうか?教えてください。

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

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

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

>> 送信方法はPOSTなのですが・・・cURL・・・自分には理解できませんでした・・・ >> その後見つけたstream_context_create関数と・・ >> ・・・何か良い方法はないものでしょうか? cURLのようにcookieが管理できる方法でないと該当ページの取得はできないでしょう。 「php curl login」でググって見ればいくつかの例が見つけられます http://pochi.orz.ne.jp/oasis/archive_280.htm http://www.phppro.jp/phptips/archives/vol16/  など。理解できるものを探しましょう。 他にも PEARの HTTP_Request を使う方法も有ります。 いずれにせよ、サイトの構成を理解した上で目的のページまでたどり着けるようにスクリプトを組む必要が有ります。(ブラウザでログインするときと同じ内容の送信を模擬することになります。)

jun_jii
質問者

お礼

おかげさまでやっと解決いたしました。 httpsは関係なく、curlのクッキーオプションの指定が足りなかっただけでした・・・(*- -)(*_ _)ペコリ ありがとうございました。

jun_jii
質問者

補足

為になる参照ページをありがとうございました。 早速色々試行錯誤して試してみたのですが・・・相変わらず「クッキーが有効になっていないか・・・」と言うエラーになってしまいます・・・ ・・・ところで、自分が取得したいページは、httpsのページなのですがcURLは、httpsはだめとかありますか?

その他の回答 (1)

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

>> ログインが必要なページ ログインにもいろいろな方法が有るため一概には言えないのですが 1.認証方法がBASIC認証の場合、 ID = hoge Password= password   URL=example.com/index.html なら以下のように入れます file_get_contents("http://hoge:password@example.com/index.html") 2.POSTでIDやパスワードを送信する必要が有る場合は  cURLなどを使えば簡単(?)にできます  http://jp2.php.net/curl 他にPEARにも使えるライブラリーが有ります

jun_jii
質問者

補足

回答ありがとうございます。 送信方法はPOSTなのですが・・・cURL・・・自分には理解できませんでした・・・ とりあえずその後見つけたstream_context_create関数とfile_get_contentsを組み合わせた方法でPOST送信を試してみたのですが・・・うまくログインできず「Cookieが有効になっていないかもしれません」などと言うエラーが表示されログインできませんでした・・・・ ・・・何か良い方法はないものでしょうか?

関連するQ&A

  • PHPで他サイトにログインしてHTMLソースを取得

    PHPで他のサイトにログインしてHTMLソースを取得できますか? 例えば http://www.goo.ne.jp/ http://www.yahoo.co.jp/ http://jp.msn.com/ 上記それぞれのサイトにログインして メール受信件数を取得して、まとめて表示したいです。 静的HTMLページであれば file_get_contents関数で文字列として読み込み preg_matchで目的のHTML部分を正規表現で指定し explodeで分割して目的の部分だけを抽出 といったような流れで、だいたい可能なのは解かりました。 ただし、その前段階のphpで他のサイトにログインする方法が解かりません。 ログインの種類は、上記の例であげたように フォームタイプのログイン形式です。 Basic認証タイプではありません。 PHPで行う方法はあるのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ログイン処理を自動で行い、目的のWEBページの内容を取得したい

    ログイン処理を自動で行い、目的のWEBページの内容を取得したい http://dobon.net/vb/dotnet/internet/webrequest.html 上記のサイトを参考にWEBページの取得には成功したのですが、 IDやパスワードを入力する必要のあるページはどのようにしたらよいでしょうか?

  • fopen関数が使えないサーバってありますか?

    サーバを変えた瞬間から、fopen関数もfile_get_contents関数もなにも返さない状態になってしまいました。 phpinfo関数も使用不可能な設定になっているようで。 かなり困っています。 fopen関数とfile_get_contents関数を使わないで、リモートのサイトの内容を取得することは可能でしょうか?

    • ベストアンサー
    • PHP
  • PHPでWebページの特定部を取得したいのですが、上手くいきません。

    PHPでWebページの特定部を取得したいのですが、上手くいきません。 現在file_get_contentsを用いてURLを指定して取得し、preg_matchの引数にする方法で行っています。 また、preg_matchは以下のように用いています。 preg_match("/パターン(.*?)パターン/s", $html, $matches); print_rで$matchesを表示してみたところArray()のみ出力されます。 また、話が逸れて申し訳ないですが、上記とは別にfile_get_contentsを用いて動的にURLを指定して取得しているのですが、処理に時間がかかります。(約10秒) $wordをURLに組み込む変数として以下のように記述しています。 file_get_contents("http://…".$word."…(URLの続き)"); 以上の2点についてご教示願います。

    • ベストアンサー
    • PHP
  • ログイン後のソースをw3getで取得したい

    ASPで開発をしています。 basp21のw3get関数で、指定したページのソースが取得できると思いますが、ログインした後のソースを取得する方法はないでしょうか? 一旦ログインしたことにする必要があると思うのですが。よろしくお願いいたします。

  • ログインページのソースを取得する方法

    過去に 『WEBページのソースを取得する方法』 http://oshiete1.goo.ne.jp/qa1783894.html という質問を見たのですが、ログインが必要なページのソースを取得したくて、これと同じような要領で試してみたのですがうまくいきません。 私がしたいことは、自分が借りているレンタルサーバーから、mixiなどのマイページにアクセスしてHTMLソースを取得してそのソースを整形して一部を自分のレンタルサーバーで公開したいのですが。 説明がわかりにくいとおもいますが、どうかご教授願えますよう宜しくお願いいたします。

    • 締切済み
    • PHP
  • ログイン後のソースの取得

    PHPを勉強しはじめて1ヶ月そこらです; よろしくお願いします。 現在ある会員サイトのログイン後のマイページの取得を したいと思っています。 掲題の処理を実装するためにいろいろ見て回ったのですが、 無料のレンタルサーバーで勉強しているので、 PEARや、CURLが使えません。 ですので、下記のサイトを参考にして、ブラウザへのリクエストを PHPの関数だけで実行しようとしています。 http://www.spencernetwork.org/memo/tips-3.php おそらく、リクエストヘッダ部分にログイン情報的なクッキーを 書き込んでリクエストすれば、レスポンスで ログイン後のソースが取得できるのだと思うのですが、 その際に送信すべき、ログインクッキー情報は何を設定すれば よいのかがわからず困っています。 その会員サイトでは、ログインすると、2つのクッキーファイルが 吐き出されるのですが、それらの中のどの値をヘッダ部分に 書き込めばいいのかが判りません。 何を書き込めばログインしている、とサーバーに認識して もらえるのか、調べる方法などはありますでしょうか? いろいろクッキー情報内の値を送信して試しているのですが、 「ログインしてください」というレスポンスしか 得ることができません。 お詳しい方にご教授いただければ幸いです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPで外部サイトの一部を取得して表示

    こんにちは。 普通、外部ファイルの内容を取得して表示する場合、次のようにしますよね。 <?php echo file_get_contents("***URL***"); ?> それで、そのページの一部分、 例えば<div id="text">~</div>の内容を取得して、 file_get_contentsと同じように表示する方法はありますでしょうか。 取得する範囲はIDで指定できればと思います。 よろしくお願いします。

    • 締切済み
    • PHP
  • TCPDFでのHTML出力

    TCPDFを利用してPDFファイルを生成しようとしています。 現在ある動的なHTMLをPDFファイルにしようとしていますが、うまくいきません。 手順は 1.DBからデータを取得する。 2.取得したデータをテンプレートに埋め込む。(file_get_contents関数でテンプレートファイルを読み込んで、標識をつけた変数部分を置換する。) 3.データの埋め込まれたテンプレートファイルをfile_get_contents関数で読み込んでwriteHTMLの第一引数に渡す。 ところが3のfile_get_contentsのところでなぜかwarningが出てしまいます。 なぜかわかりません。 漠然としていますが、教えていただけるでしょうか?

    • ベストアンサー
    • PHP
  • ログインが必要なページからデータを取得する方法

    プログラミングの知識がPHPを少しかじった程度で分からないので質問させてもらいます。 知人の会社のシステムに自分のショップの商品のデータを管理してもらっているのですが(WebでID・パスワードを入力しログイン(https)で商品一覧と詳細が見れるシステムで現在はリアル店舗の在庫管理に使っています)、今度自分のショップのサイトを作成しようと思いそのときにこのログイン後に表示されるページのソースをパースして自分のショップのページに表示させたいのですが技術的にこれは可能なことなのでしょうか? 普通にhttpでログインのいらない誰でも見れる状態のページをパースして取得する方法はなんとなく分かるのですがこのケースの場合できるかどうか分からないので質問させてもらいました。

    • ベストアンサー
    • PHP