从每个tr中的第一个td检索数据

时间:2012-12-29 10:58:53

标签: php screen-scraping simple-html-dom

我正在抓一个包含几个tr的表的页面。在每个tr里面都有四个td,我想从第一个td中获取数据。下面是我到目前为止尝试过的代码,但它抓住了所有的td。我怎样才能完成我想要的东西?

...
$html = new simple_html_dom();
$html = file_get_html($url);

foreach($html->find('table tr') as $row) {
    foreach($row->find('td', 0) as $cell) {
        echo $cell;
    }
}

2 个答案:

答案 0 :(得分:2)

当你实际上只想对每个foreach中的一个元素采取行动时,请考虑为什么使用第二个row

$html = new simple_html_dom();
$html = file_get_html($url);

foreach($html->find('table tr') as $row) {
    $cell = $row->find('td', 0);
    echo $cell;
}

答案 1 :(得分:1)

简单的html dom是一个粪便。使用内置的dom函数和xpath更简单:

$dom = new DOMDocument();
@$dom->loadHTMLFile($url);
$xpath = new DOMXPath($dom);

foreach($xpath->query('//td[1]') as $td){
  echo $td->nodeValue;
}

那就是I would probably still prefer to use phpquery