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 回答