0

このウェブサイトの検索結果からデータをスクレイピングしようとしています

これを行う最善の方法は、 http: //simplehtmldom.sourceforge.net/ の simple_html_dom クラスを使用することだと言われました 。結果ページは非常にビジーで、スクレイピングしたデータを調整するのに苦労しています。

私はページのコンテンツを取得します:

$html = file_get_html('http://www.birthdatabase.com/cgi-bin/query.pl?textfield=' . $first . '&textfield2=' . $last . '&age=&affid=');

私が親切に与えられたコードは次のとおりです。

$n = 0;
foreach($html->find('table tbody tr td div font b table tbody') as $element) {
    @$row[$n]['tr']  = $element->find('tr')->text;
    $n++;
}

// output your data
print_r($row);

この DOM ナビゲーションは正しいですか? スクレイピングされたデータを取得するより良い方法はありますか?

ありがとう

4

1 に答える 1

2

あなたは私の時間を殺しました。それがあなたが望むものかどうか試してください::)

<?php
include 'simple_html_dom.php';

$html = file_get_html('http://www.birthdatabase.com/cgi-bin/query.pl?textfield=richard&textfield2=chun');
$people = array();
$cell = $html->find('table',2)->find('table',0)->find('tr');
$total = count($cell);
$i = -1;
foreach($cell as $element){
    if($i == -1) { $i++; continue; }
    if($i == $total-2) break;
    $people[$i]['f_name'] = $element->find('td',0)->plaintext;
    $people[$i]['l_name'] = $element->find('td',2)->plaintext;
    $people[$i]['b_day'] = $element->find('td',3)->plaintext;
    $people[$i]['city'] = $element->find('td',4)->plaintext;
    $people[$i]['state'] = $element->find('td',5)->plaintext;
    $i++;

}

var_dump($people);

?>
于 2013-03-25T05:47:04.240 に答える