在PHP中使用简单的\u html\u dom类刮取数据

在PHP中使用简单的\u html\u dom类刮取数据,php,screen-scraping,Php,Screen Scraping,我正试图从搜索结果中提取数据 我被告知,最好的方法是使用来自的simple_html_dom类 结果页面非常忙,我无法优化我的刮取数据 我通过以下方式获取页面内容: $html = file_get_html('http://www.birthdatabase.com/cgi-bin/query.pl?textfield=' . $first . '&textfield2=' . $last . '&age=&affid='); 我收到的代码是: $n = 0; for

我正试图从搜索结果中提取数据

我被告知,最好的方法是使用来自的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导航正确吗?有没有更好的方法来获取这些临时数据


谢谢你消磨了我的时间。如果它是您想要的,请尝试:
:)



他们有高级选择器。请参阅在线文档。这是一个很好的记录,我是一个很好的人。你能帮我改进一下吗?你必须向我展示你的html,这是html的一个例子这不是你所期望的吗?
<?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);

?>