「simple_html_dom」を使用してスクレイピングをしていますが、うまく動作しないのでお知恵を拝借したく相談させていただきました。
###前提・実現したいこと
以下のようにして外部のテキストファイル(URLリスト)を読み込むと後述のエラー内容のように表示されます。ページが見つからないということだと思いますが、URLを直接叩くとリンクしますので存在はしています。
テキストファイルは1行ごとに1URLが記載され、1000行ほどあります。
###PHP
<?php header("Content-Type: text/html; charset=UTF-8"); require_once('simple_html_dom.php'); // 読み込むファイル名の指定 $file_name = "sample3.txt"; // ファイルを全て配列に入れる $ret_array = file( $file_name ); foreach ($ret_array as $url) { $html=file_get_html($url); echo $html; //タグの情報を取り出す $title = $html->find('h2',0); echo $title; } ?>
###エラー内容
Warning: file_get_contents(http://hogehoge/facility/40/ ): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/simple_html_dom.php on line 76 Fatal error: Call to a member function find() on a non-object in /home/www/test.php on line 17
###試したこと
・テキストファイルが1行だった場合は想定通り動作しました。
・simple_html_dom.phpが正常に動作していることは別のPHPで確認しています。
・URLリストを別のものに変更すると動作したことがらURLに不備があるように見えますが、URLを直接叩くと普通に飛びます。またパーミッション、文字コード、改行コードは成功したファイルと失敗したファイルともに同じでした。
・リスト化されたURLはどちらも擬似静的化されたのものです。
以上です。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。