0

ヘルフレンズ

ここからレース結果を取得する必要があります

"http://www.drf.com/race-results/BHP/USA/2012-06-23/D"

データベースに保存したいので、レース1、レース2、レース3などのすべてのレコードを取得する必要があります

このコードを使用しているが、ページ全体が表示されていることを提案してください。特定の情報のみが必要です

      <?php
       $ch = curl_init();   
      //Fetch the timeline
         curl_setopt($ch, CURLOPT_URL, 'http://www.drf.com/race-results/BHP/USA/2012-06-24/D');
 //send data via $_GET
 //curl_setopt($ch, CURLOPT_GET, 0);

//do not return the header information
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);

//If SSL verification is needed. Delete if not needed
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);

    //Give me the data back as a string... Don't echo it.
      //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

        //Warp 9, Engage!

       $content = curl_exec($ch);

       //Close CURL connection & free the used memory.

       curl_close($ch);
         ?>
4

4 に答える 4

2

Goutteライブラリの使用をお勧めします。十分に文書化された API を使用して、リモート サイトをスクレイピングおよび解析できます。リンクをたどったり、フォームを送信したりすることもできます。

ドキュメントからの使用例:

use Goutte\Client;

$client = new Client();

request() メソッドでリクエストを作成します。

$crawler = $client->request('GET', 'http://www.symfony-project.org/');

このメソッドは Crawler オブジェクト (Symfony\Component\DomCrawler\Crawler) を返します。

リンクをクリックしてください:

$link = $crawler->selectLink('Plugins')->link();
$crawler = $client->click($link);

CSS クラスに基づいてデータを抽出し、テキストを出力します。

$nodes = $crawler->filter('.error_list');
if ($nodes->count())
{
  die(sprintf("Authentification error: %s\n", $nodes->text()));
}

printf("Nb tasks: %d\n", $crawler->filter('#nb_tasks')->text());
于 2012-06-27T16:39:39.720 に答える
0

Curl は、予想どおり、サイトのページの HTML コードを返します。

実際のサイトに移動し、たとえば、結果が表示される div を特定します。次に、PHP dom パーサーまたは文字列抽出を使用して、特定のセクションのデータを抽出します (簡単ですが非効率的であり、お勧めしません)。

セクションから HTML タグを取り除き、必要なデータを保存します。

于 2012-06-27T11:28:24.977 に答える
0

HTML http://simplehtmldom.sourceforge.net/からコンテンツを抽出するには、PHP simplehtmldom パーサーを使用します。

于 2012-06-29T12:49:32.770 に答える
0

PHP dom パーサーを調べる必要があります。リンク

HTML ページを解析して必要なデータを取得し、データベースに保存します。

幸運を祈ります。

于 2012-06-27T11:21:20.213 に答える