2016-11-16 9 views
0

ページ分類された投稿でウェブサイトカテゴリの値を解析したい。必要な情報は投稿内です。私はそれを行うためにシンプルなHTML DOMを使用しようとしました。私はそれを得た、しかし私はそれが正しいとは思わなかった。スクリプトは、ゆっくりと、あなたのページを要求しているとして、私は、ネットワークを介してその中の記事をANF 300秒の誤差ページング付きの単純なHTML DOM

最大実行タイムアウト

<?php 

    include('simple_html_dom.php'); 

    $total_pages=600; 
    $i = 1; 

    while ($i <= $total_pages): 

$html = file_get_html(''.$url.'/'.$from.''); 

foreach($html->find('.itemReview h3 a') as $a) { 

    $post = file_get_html('http://www.website.com/'.$a->href.''); 

    $author_mail = $post->find('.sellerAreaSecond',0); 
    $author_mail = $post->plaintext; 
    $a_mail_array[] = $author_mail; 
} 


$fp = fopen('file.csv', 'w'); 

foreach($a_mail_array as $ddd) { 
fputcsv($fp, array($ddd)); 



    } 
    fclose($fp); 


$from++; 
endwhile; 


    ?> 
+1

set_time_limit()関数を使用して実行時間制限を増やす必要があります。 http://php.net/manual/en/function.set-time-limit.php。コマンドラインから実行していますか? – Andreas

+0

ブラウザから実行します。あなたの提案は助けになりました。私はスクリプトをもっと長く実行できます。しかし、もし私が100ページ以上を解析したいのであれば、私は500サーバエラーを受け取るでしょう:( – user3514052

+0

あなたのスクリプトで許可されたメモリ制限を増やしたいかもしれませんini_set( 'memory_limit'、 '-1');無制限のメモリ。これを読むにはhttp://stackoverflow.com/questions/11885191/how-to-increase-memory-limit-for-php-over-2gb – Andreas

答えて

0

を取得し、大量のデータと連携し、もちろん、これは遅く、大量のafデータでスクリプトのタイムアウトに遭遇します。 php.iniファイルの最大実行時間を増やしてみてください。

0

一つの解決策は、あなたのサーバの設定(php.iniの)

より良い1、サーバーのダウンロード自体から100ページを持っているし、それらを解析していないだろうに制限時間を増やすことであろう。 HTMLの解析には時間がかかりますが、すべてのコードを調べて、.read_more a.authoremailを見つけなければなりません。私はあなたがデータストレージのためのプレーンなファイルに取り組んでいると思っています。もしあなたがMySQLやSQLiteのようなデータベースに切り替える必要があるならば、データベースを照会できます。これは、あなたのウェブサイトがより多くのコンテンツを持っているときにクラッシュしないようにするだけでなく、スピードアップします。

SQLでは、作成者の電子メールをテーブルに格納してから、SELECT authoremail FROM postsを使用してforeach()を使用します。これにより、日付順や名前順などの並べ替えを行うこともできます。あなたのウェブサイトをゆっくりと非能率的に走らせることは、私の時間制限を伸ばすことはおそらく良い考えではありません。

関連する問題