2017-05-07 25 views
0

異なるURLからデータを取得してウェブサイトに表示するには、どのような方法が適していますか? hquery.phpを使用してデータをスクラップしていますが、かなりうまく機能します。 しかし、私はこれをやってより最適化された方法があるのか​​どうかを知りたいのです:PHPを使用して異なるページから価格データを取得する

<?php 
    include_once 'hquery.php'; 
    $doc = hQuery::fromUrl('http://example.com/Product.aspx?PID=125'); 
    $price1 = $doc->find('.price'); 
    $doc = hQuery::fromUrl('http://example.com/Product.aspx?PID=156'); 
    $price2 = $doc->find('.price'); 
    ... 
?> 

<td>Product1</td> 
<td><?php echo $price1 ?></td> 

<td>Product2</td> 
<td><?php echo $price2 ?></td> 
... 

私はそれらのようなダース以上のURLをので、私はより高速な方法があるはずです知っているが、私はそれを見つけることができませんでした。どんな助けでも感謝しています。

+2

ウェブサイトがパブリックAPIをクエリに提供しない限り、最も一般的な方法です。データを一括処理する場合は、バックグラウンドスクリプトでジョブを実行し、情報をデータベースに格納してから、スクリプトからデータベースを照会します。 – Gntem

答えて

0

配列内のURLのを入れてみてください、その後、ちょうどそれらを反復:

 <?php 
     include_once 'hquery.php'; 
     $urls =array("http://example.com/Product.aspx?PID=125","http://example.com/Product.aspx?PID=156"); 
     $index = 1; 
     foreach($url in $urls){ 
      $doc = hQuery::fromUrl($url); 
      $price = $doc->find('.price'); 
      echo "<td>Product $index</td><td>$price</td>"; 
      $index += 1; 
     } 

     ?> 

// EDIT:これだけのコードが書かれている方法を改善し、実際にページをスピードアップしませんもちろん 。それをスピードアップしたい場合は、データの取得を自動化し、保存し、取得した情報を含む独自のデータベースを照会します。

+0

ありがとう、私はこの場合はmysqlで作業しなければならないと思います。 :) – 0x17

関連する問題